我已经花了大约10个小时阅读了大量的帖子试图解决这个问题,但不得不承认失败,所以希望某种善良的灵魂会让我理顺。
我正在尝试将数据发送到我的控制器(GET)以返回部分视图。尽管我尝试过各种变化,但控制器收到的模型始终为空。为了保持简单,我将模型削减为一个元素。
我错过了什么? (提前致谢)
型号:
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");
}
});
};
答案 0 :(得分:1)
您的传入和传出变量应该具有相同的名称。
尝试将您的js变量名称更改为
paneContent = {
ContentType: $("#ContentTypeID").val(),
}
另外,请勿尝试使用GET
发送复杂变量。那将永远不会奏效。始终使用POST
。
type: 'POST',