私はimagelinkを持つグリッド(Infragistics JQueryグリッド)を持つビュー(Index.cshtml)を持っています。ユーザーがこのリンクをクリックすると、次のjqueryの関数が呼び出されます。AJAXポストの後にリフレッシュしないで表示
function ConfirmSettingEnddateRemarkToYesterday(remarkID) {
//Some code...
//Call to action.
$.post("Home/SetEnddateRemarkToYesterday", { remarkID: remarkID }, function (result) {
//alert('Succes: ' + remarkID);
//window.location.reload();
//$('#remarksgrid').html(result);
});
}
は、あなたが自分のために警告を表示し、表示を更新する2回の試行できるコメントアウト。 location.reload()は機能しますが、基本的にブラウザではあまりにも多くの作業が必要です。 .html(結果)は、remark.cgtml + Layout.cshtmlの全体をremarksgridのdivに投稿します。それは正しいものではありません。
これは、それが(SetEnddateRemarkToYesterday)を呼び出すアクションです:
public ActionResult SetEnddateRemarkToYesterday(int remarkID) {
//Some logic to persist the change to DB.
return RedirectToAction("Index");
}
これは、それがリダイレクトアクションです:私はsuccesfullの後window.location.reloadをしない場合は
[HttpGet]
public ActionResult Index() {
//Some code to retrieve updated remarks.
//Remarks is pseudo for List<Of Remark>
return View(Remarks);
}
ビューは再ロードされません投稿するAJAXを投稿してください。私はMVCの新人ですが、これを行うためのより良い方法があると確信しています。私はここで何か基本的なことを理解していない。おそらく正しい方向への微妙な動き?前もって感謝します。
ベターHTML部分的なビューはSetEnddateRemarkToYesterdayメソッドの結果となります。 – ssilas777
@ ssilas777あなたは正しいです。私がこれを投稿した翌日、これは私が行った解決策であることに気付きました。返信ありがとうございます。 –