2016-04-11 26 views
0

なぜこのコードはうまくいかないのですか?「OK」が表示されますが、view1(view1はロードされません)が表示されません。prop1でビューを管理したいprop1の値を " 1" ロード・VIEW1はajaxがmvcコントローラを呼び出す

ハイアーは私のコントローラ

[System.Web.Mvc.Route("Home/SubmitMyData/")] 
     [System.Web.Http.HttpPost] 
     public ActionResult SubmitMyData([FromBody]MyParamModel mydata) 
     { 


      if (mydata.Prop1.Equals("1")) 
       return View("veiw1"); 
      else 
         return View("view2"); 


     } 

     public class MyParamModel // #4 
     { 
      public string Prop1 { get; set; } 
      public string Prop2 { get; set; } 
     } 

あり、それはあなたのJavaScriptで

$('#Buttonv').click(function() { 

     var myData = {Prop1: "1", Prop2: ""}; // #1 
     $.ajax({ 
      type: 'POST', 
      data: myData, // #2 
      url: '/Home/SubmitMyData',   
     }) 
      .success(function (data) { 
       var output = "ok"; 

       $('#lblmessage').html(output); 

      }) 
     .error(function (xhr, ajaxoption, thrownError) { 
      $('#lblmessage').html("moshkelo" + xhr + "ajaxoption= " + ajaxoption + " throwerror=" + thrownError); 
     }); 
     //return false; 
    }); 

答えて

0

あなたのコントローラからの眺めを返却する場合、あなたはあなたが実際にあなたのPOSTのsuccessコールバック内のHTMLコンテンツを使用していることを確認する必要があります:あなたは以前outputを使用していた

.success(function (data) { 
    // data will contain your content 
    $('#lblmessage').html(data); 
}) 

、どのスクリプト内のどこにも定義されていないようです。

さらに、返されるビューの名前をreturn View("veiw1");と入力してください。これは、入力した文字がreturn View("View1");のように見えます。

+0

1:データは重要ではありません。私は "public ActionResult SubmitMyData"を呼び出し、 "veiw1"を返したいだけです。 2:名前veiw1は真です。 3:出力は私にとっても重要ではありません。そのちょうどのメッセージ – amin

+0

1.あなたの 'url'が適切に解決されていると仮定すると、正しく呼び出されるはずです。 2.私はそれが誤字ではないことを確認していた。 3.出力は重要ではないが、ビューを返すことが必要であると言います。上記の例で 'success'関数で出力されたパラメータ(つまり' data')には、あなたのViewがレンダリングするすべてのHTMLが含まれているので、表示したいなら '$(element ).html(データ); '。 –

+0

コントローラアクションにブレークポイントを配置して、モデルが正しく配置されていることを確認しましたか? –

0

、サーバーによって返されたHTMLを無視している私のAJAX呼び出しです。 documentationパー

 .success(function (data) { 
      $('#lblmessage').html(data); 
     }) 

...にそれを変更してみてください、successメソッドの最初のパラメータは、サーバから返されたデータです。

+0

でも、データは重要ではありません。私はちょうど私のコントローラで "公共のActionResult SubmitMyData([FromBody] MyParamModel mydata)"を呼び出すしたいです。 – amin

関連する問題