每個解決方案/類似的問題都與json對象有關。我認爲這個問題可能是由使用html造成的。我也驗證過,在碰到ajax調用之前數據不是空的。MVC: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'時?如果您希望在* response *中使用HTML,則dataType:'html''就足夠了。 contentType由* request *使用。 – haim770
我認爲這是正確的,因爲我發送的對象類型只是純文本字符串 –
感謝它的工作! –