Если у меня есть следующая функция jQuery (во внешнем файле):
function getResults(field1, field2, field3) {
$.get('/Search/GetResults', { id: field1, type: field2, blah: field3 }, function(data) {
$('#target').html(data);
});
}
Который, по сути, берет из формы несколько полей, отправляет их в метод действия (который возвращает PartialViewResult) и связывает результат с целевым div.
Вот этот метод действия:
[HttpGet]
public PartialViewResult GetResults(int id, int type, string blah)
{
var model = repository.GetResults(id, type, blah);
return PartialView("Results", model);
}
Можно ли использовать привязку модели здесь? Например, мы можем сделать это:
function getResults(someModel) {
$.get('/Search/GetResults', { model: someModel }, function(data) {
$('#target').html(data);
});
}
А это:
[HttpGet]
public PartialViewResult GetResults(SearchPreferences prefs)
{
var model = repository.GetResults(prefs);
return PartialView("Results", model);
}
Или я должен создать объект JSON и передать его? В настоящее время эти значения извлекаются через отдельные вызовы JQuery DOM:
var field1 = $('#field1').val();
var field2 = $('#field2').val();
Цель - сократить / упростить код jQuery. У меня есть все эти вызовы, чтобы получить все значения, а затем мне нужно передать их все в качестве параметров.
В идеале я хотел бы просто передать один объект.
Есть рекомендации?
РЕДАКТИРОВАТЬ : только что понял, что я могу использовать новую функцию JSON Model Binding в ASP.NET MVC 3. Читайте об этом сейчас ... (не стесняйтесь ответь заранее тем временем).