Кажется, у меня проблема с получением MVC для заполнения моего пользовательского параметра модели при вызове через GET вместо POST.
У меня есть фрагмент JavaScript, который вызывает действие вроде:
$.getJSON('<%= Url.Action("DoSearch") %>' + location.search,
function(data) {
if (data.Result == "OK") {
location.href = location.href;
}
});
То, что он делает, в основном вызывает отдельное действие, передавая ему те же строки запросов, что и вызывающей странице. Затем, если результат «ОК», он обновляет текущую страницу.
Действие определяется следующим образом:
public ActionResult DoSearch(SearchParameters searchParameters)
Модель:
public class SearchParameters
{
public string Query;
...
}
URL для вызова (проверено с помощью firebug) похож на /DoSearch?Query=some+query
. (также попытался /DoSearch?searchParameters.Query=some+query
безуспешно)
Независимо от того, что я пробовал, мой параметр всегда отображается как пустой (не ноль, просто все параметры инициализируются до значений по умолчанию)
Если вместо этого я определю действие следующим образом:
public ActionResult DoSearch(string Query, ...)
Тогда мои параметры заполняются правильно. Однако не с моделью.
Я предполагаю:
a) заполнение объектной модели не работает для запросов GET.
б) я что-то делаю не так
Есть идеи? Спасибо.