在MVC的架構底下,使用者將畫面上的資料Submit到後端,
後端在處理商業邏輯成功之後,要跳出MessageBox顯示執行成功的訊息,
然後再導向額外的指定頁面。
EX:審核人員在審核資料的時候,操作審核按鈕,後端執行完審核邏輯之後
結束審核畫面,跳出審核成功並導回管理頁面。
建立一個ADController.cs,裡面建立三個Action
流程大概是AD0010(起始頁)->輸入完資料之後Submit到AD0010的後端->執行完畢之後導向PartialView:_RedirectPartialView
->顯示要顯示的文字(例如:XXX執行成功)->在導向最終頁(AD0020)
/// <summary>
/// 起始頁
/// </summary>
/// <returns></returns>
public ActionResult AD0010()
{
return View();
}
/// <summary>
/// 執行完後端的商業邏輯之後,要跳出MessageBox顯示執行完畢,然後在導向指定的頁面。
/// </summary>
/// <param name="txtID"></param>
/// <returns></returns>
[HttpPost]
public ActionResult AD0010(String txtID)
{
var _ViewModel = new PartialViewModel
{
Message = "ID:" + txtID + "執行完畢",
RedirectURL = "../AD/AD0020?ID=" + txtID + "&ISIT=Y"
};
return PartialView("_RedirectPartialView", _ViewModel);
}
/// <summary>
/// 最終導向的網頁
/// </summary>
/// <param name="ID"></param>
/// <param name="ISIT"></param>
/// <returns></returns>
public ActionResult AD0020(String ID, String ISIT)
{
this.ViewBag.ID = ID;
this.ViewBag.ISIT = ISIT;
return View();
}
AD0010的View,很單純的一個輸入框以及Submit button
PartialView建立在Folder:Shared內,因為是共用的,所以名稱前面加上底線
在Model/ViewModel底下建立一個給PartialView用的ViewModel
回到一開始寫好的ADController.cs內的Action:AD0010,
在導入PartialView之前,我給了這個PartialView一個ViewModel,裡面有要顯示的訊息,
以及顯示完訊息之後要重新導向的網址,可注意到網址列裡面有符號"&"
執行的時候將中斷點下在PartialView:_RedirectPartialView內,可看到符號"&"已經被取代為 &
這時候就需要手動將 & 換回& ,網址才可以正常導回目的頁