C# ajax调用控制器,模型为空
我已经花了大约10个小时,读了无数的帖子试图弄明白这一点,但我不得不承认失败,所以希望有一个善良的灵魂能让我改过自新 我试图将数据发送到我的控制器(GET)以返回部分视图。控制器接收到的模型总是空的,尽管我尝试了各种变化。为了保持简单,我将模型简化为一个元素 我错过了什么?(提前感谢) 型号:C# ajax调用控制器,模型为空,c#,jquery,ajax,asp.net-mvc,json,C#,Jquery,Ajax,Asp.net Mvc,Json,我已经花了大约10个小时,读了无数的帖子试图弄明白这一点,但我不得不承认失败,所以希望有一个善良的灵魂能让我改过自新 我试图将数据发送到我的控制器(GET)以返回部分视图。控制器接收到的模型总是空的,尽管我尝试了各种变化。为了保持简单,我将模型简化为一个元素 我错过了什么?(提前感谢) 型号: public class TextContentViewModel { public string ContentType {get; set;} } 控制器: public ActionRes
public class TextContentViewModel
{
public string ContentType {get; set;}
}
控制器:
public ActionResult Preview(TextContentViewModel paneContent)
{
return PartialView("_Text");
}
Javascript:
<script type="text/javascript">
$("#previewButton").click(showPreview);
function showPreview() {
content = {
ContentType: $("#ContentTypeID").val(),
}
$.ajax({
url: '@Url.Action("Preview")',
type: 'GET',
contentType: 'application/json',
data: JSON.stringify(content),
success: function (result) {
$('#preview').html(result);
},
error: function (result) {
alert("something went wrong");
}
});
};
$(“#预览按钮”)。单击(显示预览);
函数showPreview(){
内容={
ContentType:$(“#ContentTypeID”).val(),
}
$.ajax({
url:“@url.Action(“预览”)”,
键入:“GET”,
contentType:'应用程序/json',
数据:JSON.stringify(内容),
成功:功能(结果){
$('#preview').html(结果);
},
错误:函数(结果){
警惕(“出了差错”);
}
});
};
传入和传出变量应具有相同的名称 尝试将js变量名更改为
paneContent = {
ContentType: $("#ContentTypeID").val(),
}
另外,不要尝试使用GET
发送复杂变量。那是行不通的。始终使用POST
type: 'POST',
尝试从ajax请求中删除
contentType
属性我已经尝试过POST,但不知何故,我忽略了变量名必须相同。我只是觉得酒店的名字应该是一样的。感谢您的帮助,我非常感谢。@Joel不清楚传递的变量名必须匹配。这是因为JSon的编码/解码。欢迎来到SO。希望你也有机会回答问题!