Каждое решение/аналогичный вопрос относится к объектам json. Я думаю, проблема может быть вызвана использованием html. Я также подтвердил, что данные не пустые, прежде чем они попадут в вызов ajax.MVC: данные Ajax не доходят до контроллера
Вот Ajax
function SubmitSearch() {
var type = $("#select_SearchType").val()
var query = $("#input_Search").val()
$.ajax({
//url: "newSearch",
url: '@Url.Action("newSearch", "Results")',
type: 'POST',
cache: false,
dataType: "html",
contentType: 'application/html; charset=utf-8',
data: { type: type, query: query },
success: function (ViewModel) {
alert(ViewModel)
$("#div_record").empty();
$("#div_record").html(ViewModel)
},
error: function (ViewModel) {
alert("error")
$("#div_record").empty();
$("#div_record").html(ViewModel)
},
});
}
И выбранный код из действий
[HttpPost]
public ActionResult newSearch(string type, string query)
{
switch (type)
{
case " ":
response.errMess = "empty data, T:" + type + " Q:" + query;
return PartialView("Record", response);
default:
response.errMess = "Error: mismatched fields, T:" + type + " Q:" + query;
return PartialView("Record", response);
}
типа и запроса оба приходят в пустой
Почему ваш 'CONTENTTYPE:«приложение/html; charset = utf-8'', когда вы отправляете 'application/x-www-form-urlencoded'? Если вы ожидаете HTML в * ответе *, 'dataType: 'html'' должно быть достаточно. 'contentType' используется * request *. – haim770
Я понял, что это будет правильно, так как тип объектов, которые я отправляю, это просто текстовые строки –
Спасибо, сработало! –