ASP.NET MVC 4 и форма плагина Jquery Form публикуются 2 раза

Я пробую почтовый файл ajax с моделью для контроллера. Используется плагин Jquery Form. Публикация файла с моделью не вызывает проблем, но форма всегда публикуется 2 раза, и по этой причине мои данные всегда заменяются. Как это исправить?

Коды здесь:

  <script>
(function() {

var bar = $('.progress-bar');
var percent = $('.progress-bar');
var status = $('#status');

$('form').ajaxForm({
    beforeSend: function() {
        status.empty();
        var percentVal = '0%';
        bar.width(percentVal)
        percent.html(percentVal);
    },
    uploadProgress: function(event, position, total, percentComplete) {
        var percentVal = percentComplete + '%';
        bar.width(percentVal)
        percent.html(percentVal);
    },
    success: function() {
        var percentVal = '100%';
        bar.width(percentVal)
        percent.html(percentVal);
    },
    complete: function(xhr) {
        status.html(xhr.responseText);
    }
}); 

})();       
</script>






    @Using (Ajax.BeginForm("AddNewProductToGroup", "Admin", New AjaxOptions With {.HttpMethod = FormMethod.Post,
                                                                              .InsertionMode = InsertionMode.Replace,
                                                                              .UpdateTargetId = "productslist",
                                                                              .OnSuccess = "OpenNewProduct"},New With{.enctype = "multipart/form-data"}))

  @Html.AntiForgeryToken()

<div class="form-group">
                        <label class="col-sm-4">
                             @Html.ValidationMessageFor(Function(m) m.Desc) 
                            @Html.DisplayNameFor(Function(m) m.Desc) 
                          </label>
                        <div class="col-sm-8">
                          @Html.TextBoxFor(Function(m) m.Desc,New With{.class="form-control"})
                        </div>
                      </div>


                           <div class="form-group">
                        <label class="col-sm-4">@Html.DisplayNameFor(Function(m) m.Image) </label>

                        <div class="col-sm-8">
                          @Html.TextBoxFor(Function(m) m.Image,New With{.class="form-control",.type="file", .id = "file_upload"})
                            <div class="progress progress-striped">
        <div class="progress-bar progress-bar-success">0%</div>
    </div>

<div id="status"></div>
                        </div>
                      </div>

                       <div class="col-lg-4">
                              <button type="submit" class="btn btn-primary">Add </button>

                       </div>


            End Using







<ValidateAntiForgeryToken>
Public Function AddNewProductToGroup(ByVal prd As ProductCreate) As ActionResult

введите здесь описание изображения


person cptc    schedule 05.06.2014    source источник
comment
Нужна ли нам снова $('form').ajaxForm({}) в javascript?   -  person malkam    schedule 05.06.2014
comment
Нет, мне нужно только один раз, но этот скрипт дважды публикует одни и те же данные.   -  person cptc    schedule 05.06.2014


Ответы (1)


Я нашел решение, изменил Ajax.beginform на Html.Beginform и изменил скрипт.

 (function() {
    debugger
var bar = $('.progress-bar');
var percent = $('.progress-bar');
var status = $('#status');


$('#formprd').ajaxForm({
    beforeSend: function() {
        status.empty();
        var percentVal = '0%';
        bar.width(percentVal)
        percent.html(percentVal);
    },
    uploadProgress: function (event, position, total, percentComplete) {

        debugger
        var percentVal = percentComplete + '%';
        bar.width(percentVal)
        percent.html(percentVal);
    },
     success: function (result) {

        var percentVal = '100%';
        bar.width(percentVal)
        percent.html(percentVal);
        event.preventDefault();
        $("#productslist").html(result);
    },
    complete: function(xhr) {
        status.html(xhr.responseText);
        return false;
    }
}); 

})();

И форма:

 @Using (Html.BeginForm("AddNewProductToGroup", "Admin", FormMethod.Post,New With{.enctype = "multipart/form-data",.id="formprd" }))
person cptc    schedule 05.06.2014