なぜこのコードはうまくいかないのですか?「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;
});
1:データは重要ではありません。私は "public ActionResult SubmitMyData"を呼び出し、 "veiw1"を返したいだけです。 2:名前veiw1は真です。 3:出力は私にとっても重要ではありません。そのちょうどのメッセージ – amin
1.あなたの 'url'が適切に解決されていると仮定すると、正しく呼び出されるはずです。 2.私はそれが誤字ではないことを確認していた。 3.出力は重要ではないが、ビューを返すことが必要であると言います。上記の例で 'success'関数で出力されたパラメータ(つまり' data')には、あなたのViewがレンダリングするすべてのHTMLが含まれているので、表示したいなら '$(element ).html(データ); '。 –
コントローラアクションにブレークポイントを配置して、モデルが正しく配置されていることを確認しましたか? –