我正在尝试使用一些JSON功能,它基本上尽可能简单但是由于某种原因我在控制台上遇到500内部服务器错误,应用程序永远不会到达控制器。我已经尝试了所有的东西,但是代码非常简单,我已经放弃了尝试通过一遍又一遍地读取相同的行来找到错误。
这是我的剧本:
$("#saveAdvisorOption").click(function () {
// Create a JSON object:
alert("OK");
var OptionsModel = { "AdvisorNewsFeed": $("#advisorCheckBox").val() };
alert($(OptionsModel.AdvisorNewsFeed));
$.post("/Account/ChangeOptionForAdvisor", OptionsModel, function (data) {
});
});
这是我的模特:
public class OptionsModel
{
public string AdvisorNewsFeed { get; set; }
public OptionsModel(string AdvisorNewsFeed)
{
this.AdvisorNewsFeed = AdvisorNewsFeed;
}
}
}
这是我的控制器:
public class AccountController : Controller
{
[HttpPost]
public ActionResult ChangeOptionForAdvisor( OptionsModel option)
{
//Return something
return Json(option, JsonRequestBehavior.AllowGet);
}
我在return语句中有一个断点,但它永远不会运行。
非常感谢任何帮助。
答案 0 :(得分:3)
您可能只需要向OptionsModel
类添加一个空构造函数。没有空构造函数,MVC无法实例化该类。
答案 1 :(得分:1)
@scottm遇到了重大问题。
那说:
你可能需要告诉jQuery你期望得到一个json
对象:
$.post("/Account/ChangeOptionForAdvisor", OptionsModel, function (data) {...});
对此:
$.post("/Account/ChangeOptionForAdvisor", OptionsModel, function (data) {
...}, 'json'); //<======