2012-05-02 4 views
0

JSON機能を使用しようとしていますが、基本的には簡単ですが、何らかの理由で500内部サーバーエラーが発生しています私のコンソールとアプリケーションは決してコントローラに到達しません。私はすべてのことを試しましたが、コードは非常にシンプルなので、同じ行の繰り返しを何度も読んでエラーを見つけようとしました。ここで.NET MVC3で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

なぜ例外を教えていただけませんか? – gdoron

答えて

3

あなたはおそらく追加する必要がありますが、おそらくjQueryのを指示する必要があり

あなたがjsonオブジェクトを取得するために期待している:言わ

空のコンストラクタをOptionsModelクラスに追加します。 MVCは空のコンストラクタなしでクラスをインスタンス化できません。

+0

+1。彼はdataTypeを 'json'に指定する必要がありますが、これは別の話です。 – gdoron

+0

@gdoronそれは本当ではありません。 – scottm

+0

それはなぜですか? – gdoron

1

@scottmが大きな問題を抱えています。これに

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

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

これは500サーバーエラーの理由であってはなりません(この修正はクライアント側で*応答の取得後*です)。 @FelixKling。 –

+0

True、ノートを追加しました – gdoron

関連する問題