.NET MVC3中的JSON:500(内部服务器服务器错误)

时间:2012-05-02 15:31:29

标签: javascript jquery json asp.net-mvc-3 post

我正在尝试使用一些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语句中有一个断点,但它永远不会运行。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

您可能只需要向OptionsModel类添加一个空构造函数。没有空构造函数,MVC无法实例化该类。

答案 1 :(得分:1)

@scottm遇到了重大问题。

那说:

你可能需要告诉jQuery你期望得到一个json对象:

$.post("/Account/ChangeOptionForAdvisor", OptionsModel, function (data) {...});

对此:

$.post("/Account/ChangeOptionForAdvisor", OptionsModel, function (data) {
    ...}, 'json'); //<======