0

我试图让一些 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 语句上有一个断点,但它永远不会运行。

任何帮助是极大的赞赏。

4

2 回答 2

3

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

于 2012-05-02T15:34:13.607 回答
1

@scottm 遇到了主要问题。

那说:

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

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

对此:

$.post("/Account/ChangeOptionForAdvisor", OptionsModel, function (data) {
    ...}, 'json'); //<======
于 2012-05-02T15:33:15.213 回答