Моя проблема:
Во-первых, у меня есть форма поиска, где пользователь вводит критерии, а запрос отправляется соответствующему действию индекса контроллера. Пользовательский ввод передается как тип модели, который я создаю только для хранения данных. Я возвращаю модель в представление, затем прямо перед визуализацией представления я получаю данные модели представления с помощью jquery, и у меня есть knockout.js / ajax, отправляющий `` данные '' в действие jsonresult, где происходит фильтрация поиска, затем я обновляю представление, использующее данные json и нокаутные привязки данных.
Мое действие jsonresult принимает строку sortByText (работает) для сортировки таблицы и ViewModel. Но когда происходит вызов ajax, мое действие jsonresult не распознает значения, переданные объектом данных.
Как правильно передать SearchFormModel в действие JSONresult?
AJAX
«self.options.formModel» содержит мои данные, отправленные действием Index; во время отладки я вижу, что у него есть данные, но они не отправляются в действие jsonresult на следующем шаге, только sortByText. Может ли ajax 'data:' распознавать только строки и int?
$.ajax({
type: 'POST',
url: Url,
data: { sortByText: selectedText, formModel: self.options.formModel },
dataType: "json"
})....etc
Контроллер
[HttpGet]
public ActionResult Index(string sortByText, SearchFormModel formModel)
{
var model = new SearchViewModel();
model.FormModel = formModel;
return View(model);
}
[HttpPost]
public JsonResult GetData(string sortByText, SearchFormModel formModel)
{
//return jsonData
}