mvc3 で剣道オープン ソースを使用します。
選択可能な行を持つ剣道グリッドがあります。行が選択されると、コントローラ メソッドに値が送信され、その値に基づいて新しいビューがレンダリングされます。コントローラーメソッドがヒットし、正しいデータを返し、正しいビューを提供することは確かです。Chrome Web 開発者ツールを使用すると、レンダリングされたページが応答で表示されますが、ブラウザーのビューは変更されません。SO実際に見ると結びつくまでずっと機能します。
剣道スクリプトでの私のjs:
selectable: true,
change: function (e) {
var row = this.select();
var detailId = this.dataItem(row).PersonId;
$.post('@Url.Action("Detail", "Person")', { id: detailId });
}
コントローラーメソッド:
[HttpPost]
public ActionResult Detail(int id)
{
var model = new Person();
model = db.Person.Where(x => x.PersonId == id).FirstOrDefault();
return View(model);
}
なぜそれがレンダリングされないのですか?
=======編集===========
ここでは ajax 関数を使用しませんでした。これは、js 関数に返されるいかなる種類の応答も望まないためです。サーバー側のメソッドに id を送信し、メソッドを実行してから、新しいビューを提供し、それをクライアントに送信してレンダリングします。クライアントでのレンダリングという最後のステップ以外はすべて実行しています。別のjqueryメソッドを使用する必要がありますか?