MVC 導向指定頁面

在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內,可看到符號"&"已經被取代為 &amp;

這時候就需要手動將 &amp; 換回& ,網址才可以正常導回目的頁