2011-03-12 83 views
7

我有一個表單,我想要一個網頁的URL從它到達那裏。就像我在/內容/表單,我從/內容/文件(我想保存在我的數據庫中)。這種情況的最佳方式是什麼?asp.net mvc c#獲取來自網頁的網址

回答

20

HttpContext.Request.UrlReferrer

+6

什麼時候UrlReferrer爲空... –

+0

還沒有完全回答。 –

3

最好的方法是簡單地將此信息傳遞給控制器​​操作。

因此,舉例來說,你可以包括請求URL作爲隱藏字段:

<% using (Html.BeginForm("Process", "SomeController")) { %> 
    <%= Html.Hidden("requestUrl", Request.RawUrl) %> 
    <input type="submit" value="OK" /> 
<% } %> 

和相應的控制器動作中:

[HttpPost] 
public ActionResult Process(string requestUrl) 
{ 
    // requestUrl will contain the url of the page used to 
    // render the form 
    ... 
} 

你也可以使用從路由數據控制器和動作:

<% using (Html.BeginForm("Process", "SomeController")) { %> 
    <%= Html.Hidden("controllerName", ViewContext.RouteData.GetRequiredString("controller")) %> 
    <%= Html.Hidden("actionName", ViewContext.RouteData.GetRequiredString("action")) %> 
    <input type="submit" value="OK" /> 
<% } %> 

兩者controllerName和0123將在POST請求中發送。