0

いくつかのJSON機能を動作させようとしていますが、基本的には可能な限り単純ですが、何らかの理由でコンソールで500 Internal serverエラーが発生し、アプリケーションがコントローラーに到達しません。私はほぼすべてを試しましたが、コードは非常に単純なので、同じ数行を何度も読み込んでエラーを見つけようとするのをあきらめました。

これが私のスクリプトです:

            $("#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が大きな問題になりました。

それは言った:

jsonおそらく、オブジェクトを取得することを期待しているjQueryに伝える必要があります。

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

これに:

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