2013-07-12 2 views
1

В моем приложении .NET MVC4/razor у меня есть форма, и я хочу включить другие данные, которые не найдены в форме как часть запроса к моему методу контроллера. Однако, похоже, он не добавляет лишние данные. Я столкнулся с ошибкой привязки модели. Словарь параметров содержит нулевую запись для параметра «B» типа, отличного от нуля, «System.Boolean» .. в основном, это не добавление дополнительных данных в запрос. Вы знаете, что я делаю неправильно?Как отправить дополнительные данные с помощью формы с помощью jQuery Form Plugin?

Html:

@using (Html.BeginForm("MyAction", "MyController", FormMethod.Post, new { name = "myForm", id = "myForm" })) 
{ 
    //blah 
} 

Контроллер:

public ActionResult MyAction(MyViewModel viewModel, string A, bool B) 
{ 
    //do stuff 
} 

Javascript ... Я пробовал это несколько способов и не могу заставить его работать.

beforeSerialize:

$('#myForm').ajaxForm({ 
    beforeSerialize: function (form, options) { 
     options.data = { 
      A: "test", 
      B: true 
     }; 
    }, 
    success: function (result) { 
     //do stuff 
    } 
}); 

beforeSubmit:

$('#myForm').ajaxForm({ 
    beforeSubmit: function (formData, formObject, formOptions) { 
     formData.push({A: "test", B: true }); 
    }, 
    success: function (result) { 
     //do stuff 
    } 
}); 

данные:

$('#myForm').ajaxForm({ 
    data: { 
     A: "test", 
     B: true 
    }, 
    success: function (result) { 
     //do stuff 
    } 
}); 
+0

О, я также не могу использовать скрытый ввод и изменять значение перед сериализацией или отправкой, потому что, хотя мой пример прост, одним из типов данных является фактически объект. – Donuts

ответ

0

Я решил это. Проблема в том, что div, содержащий мою форму, получал повторную визуализацию в другом событии ajax и продул магию привязки, которая происходит при загрузке страницы.

Смежные вопросы