Merhabalar. Benim yapmak istediğim bir butona veya linke tıklandığında çalışan ajax işlemi içinde çalışan success, error, load fonksiyonları ile istediğim scriptleri çalıştırabiliyorsam, aynısı bir razor sayfası içindeki formum submit olduğunda veya load olurken de aynısnı yapmak istiyorum. Tam olarak yapmak istediğim formda dosya yüklerken ve yükleme tamamlandıktan sonra ekranda bir dialog açtırıp mesaj verdirmek. SaveDocument metodunda ise yüklenen dokumandan satır ve sütun bazında verileri alıp db'ye kayıt işlemi yaptırıyorum.

<form action="@Url.Action("SaveDocuments","ImportCsv")" method="post" enctype="multipart/form-data">

<div class="divmain">
    <div class="divlefttext">
        CSV Dosyası
    </div>
    <div class="divleftinput">
        <input type="file" id="fileCsv" name="fileCsv" />
    </div>
</div>
<div class="divmain">
    <div class="divlefttext">
    </div>
    <div class="divleftinput">
        <input type="submit" />
    </div>
</div>

</form>

Bunun için client tarafında nasıl bir fonksiyon yazmalıyım? Yardımcı olursanız sevinirim.

soruldu: 07 Ağu '14, 09:42

mustafaalkan64's gravatar image

mustafaalkan64
35181220
cevap kabul oranı: 0%

değiştirildi: 07 Ağu '14, 09:42


merhabalar hocam eğer kastetiğiniz formu ajax ile gönderip verileri almak ise tabu burda file'dan bahsediyoruz. Ajax.Beginform işe yaramaz çünkü bildiğim kadarı ile file gönderemiyor server tarafına sıkıntısı var. onun yerine daha dün yaptığım fonksiyonu yazayım size. bunun için jquery.form.js dosyasına ihtiyaç var ajax işlemi için. daha sonrada

@using (Html.BeginForm("ReadFile", "File", FormMethod.Post, new { enctype = "multipart/form-data", id = "frm_profile" }))
{        @Html.AntiForgeryToken()
    <div>

        <table style="width: 425px;">
            <tr>
                <td>Dosya 
                </td>
                <td>
                    @Html.TextBoxFor(model => model.File, new { type = "file", accept = "xsd/*" })
                </td>

            </tr>

            <tr>
                <td></td>
                <td>
                    <input type="submit" value="Yükle" class="btnsuccess" id="ajaxform" />
                </td>
            </tr>
        </table>
        @*@Html.ValidationMessageFor(model => model.file)*@

    </div>
}

gibi bir form oluşturmanız gerek. daha sonrasında ise bu formun submit anı için

$('#frm_profile').ajaxForm({
        beforeSend: function () {

        },
        uploadProgress: function (event, position, total, percentComplete) {

        },
        success: function (data) {
            alert(data);
        },
        complete: function (xhr) {
        }
    });

bir script kod yazmanız gerekmektedir. beforesend gönderme işleminden önce çalışır. Uploadprogress upload aşamasında veri akışı için kullanılır.success veri gönderme işlemi başarılı ise gelen sonuç fonksiyonu ve complete her aşamada işlem bittiğinde kullanılır. bu şekilde yaparsanız tabi kendiniz için gerekli yerleri değiştirerek başarılı bir şekilde dosyanızı upload edebilirsiniz.

kolay gelsin.

permanent link

cevaplandı: 08 Ağu '14, 03:20

jacksparrow47's gravatar image

jacksparrow47
931142332
cevap kabul oranı: 27%

değiştirildi: 08 Ağu '14, 07:07

AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

AliRıza Adıyahşi ♦
7.9k146288

Benim de aradığım şey tam da bu şekildeydi. Formun submit anında bi ajax işleminin mümkün olup olmayacağını merak etmiştim. Teşekkürler.

(08 Ağu '14, 04:12) mustafaalkan64 mustafaalkan64's gravatar image
1

şanslısın daha dün denedim bunu :)doğru olarak işaretlersen memnun olurum. kolay gele

(08 Ağu '14, 04:14) jacksparrow47 jacksparrow47's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×81
×41
×8
×1
×1

Soruldu: 07 Ağu '14, 09:42

Görüntüleme: 1,131 kez

Son güncelleme: 08 Ağu '14, 07:07

powered by BitNami OSQA