我從_Layout.cshtml視圖多次調用相同的控制器。所以在這個控制器中,我怎麼能夠在運行時發現它是否仍然在渲染相同的頁面,或者是否正在創建全新的頁面請求?MVC3頁面 - IsPostback類似功能
在asp.net中,你可以使用ispostback來解決這個問題。如何判斷是否正在爲MVC3中的頁面製作全新的請求?
謝謝
我從_Layout.cshtml視圖多次調用相同的控制器。所以在這個控制器中,我怎麼能夠在運行時發現它是否仍然在渲染相同的頁面,或者是否正在創建全新的頁面請求?MVC3頁面 - IsPostback類似功能
在asp.net中,你可以使用ispostback來解決這個問題。如何判斷是否正在爲MVC3中的頁面製作全新的請求?
謝謝
有沒有這樣的想法在MVC。你有能夠處理POST,GET或兩者的操作。您可以使用[HttpPost]
和[HttpGet]
屬性過濾每個操作可以處理的內容。
在MVC中,你可以得到IsPostBack
最接近的是你的行動中,這樣的事情:
public ActionResult Index()
{
if (Request.HttpMethod == "POST")
{
// Do something
}
return View();
}
因此,
[HttpPost]
public ActionResult Create(CreateModel model)
{
if (Request.HttpMethod == "POST") // <-- always true
{
// Do something
}
return RedirectToAction("Index");
}
也許我也建議你實現它在你的控制器屬性基類如:
protected bool IsPostback
{
get { return Request.HttpMethod == "POST"; }
}
-Marc
謝謝,您的文章打開了我的想法,以一個新的罐RESTFUL蠕蟲。在這種情況下,我的HttpRequest將永遠是一個GET。因此,對於[HttpGet]屬性,如果我們處於請求的開始處或稍後請求中,仍然無法區分。但是我猜想MVC3中沒有這樣的東西,就像你說的那樣。 – River