我問了一個類似的問題here我認爲這是一個非常簡單的(當然不適合我)。我有一個Html幫助器的擴展方法,我需要用HtmlHelper獲取當前視圖的URL。有人有任何想法嗎?在ASP.NET MVC中使用HtmlHelper獲取當前視圖的Url 3
4
A
回答
5
如果你只是想要的網址,那麼你可以通過Request.Url
對象得到它。這將返回一個Uri,但是如果您想要原始URL,則返回Request.RawUrl
。
6
,如果你想獲得的路由信息,像被稱爲
您可以訪問RouteData
字典從ViewContext
對象
會是這樣
@ViewContext.RouteData.Values["Controller"]
控制器或動作方法
與RouteData
字典你可以得到所有關於控制器,動作和額外參數的名稱所需的信息,這取決於你想要什麼
9
基於您的評論,你掛我想你想用URL助手以獲取表單動作的URL原來的線程,但我可能誤解了你想要的東西:
在查看:
@Url.Action(null) returns the current controller/action
@Url.Action("Action") returns a custom action with current controller
@Url.Action("Action","Controller") returns a custom controller and action
在HTML助手:
public static MvcHtmlString MySpecialHelper(this HtmlHelper htmlHelper)
{
UrlHelper urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext,htmlHelper.RouteCollection);
string url = urlHelper.Action("Controller","Action");
//To get the action based on the current Action/Controller use:
url = urlHelper.Action(htmlHelper.ViewData["action"] as string);
//or
url = urlHelper.Action(null);
return new MvcHtmlString(url);
}
0
您可以使用Request.RawUrl屬性或Request.Url.ToString()或Request.Url.AbsoluteUri。
0
您可以使用HTML輔助傳遞對象頁作爲參考,就像這樣:
@helper GoHome(WebViewPage page)
{
<a href="@page.Url.Action("Index", "Home")"></a>
}
一個在視圖只需使用:
@Links.GoHome(this)
相關問題
- 1. ASP.NET MVC:如何在視圖中獲取頁面的當前URL?
- 2. ASP.net MVC獲取當前視圖引擎
- 3. 獲取URL ASP.NET MVC 3
- 4. 如何從URL(ASP.NET MVC)中獲取視圖中的當前路由ID
- 5. 在$$ SearchTemplateDefault中獲取當前URL或當前視圖?
- 6. 在asp.net mvc 2.0中獲取當前url的id值
- 7. ASP.NET MVC - 如何從局部視圖中獲取當前操作?
- 8. 在ASP.NET中獲取當前URL內嵌
- 9. ASP.NET MVC 5 - 獲取當前視圖的名稱(Razor .cshtml端)
- 10. 獲取在asp.net mvc的當前目錄
- 11. 如何從MVC HtmlHelper擴展中獲取當前控制器?
- 12. 如何從asp.net mvc中的當前路由獲取url參數?
- 13. 如何在ASP.NET MVC視圖中獲取Action的URL?
- 14. 如何使用ASP.NET MVC獲取當前視圖的物理文件夾?
- 15. 在視圖中獲取當前用戶名MVC 4
- 16. 獲取當前ViewContext在ASP.Net MVC
- 17. ASP.NET MVC - 當前文件夾的視圖
- 18. MVC HTML助手,獲取當前局部視圖的父視圖
- 19. 如何在視圖中獲取當前頁面的URL?
- 20. ASP.NET MVC中的當前年份3
- 21. 追加到ASP.NET MVC中的當前URL
- 22. 返回當前URL在asp.net mvc的
- 23. ASP.NET MVC - 在視圖或控制器中獲取當前區域名稱
- 24. SiteMap HtmlHelper ASP.NET MVC
- 25. ASP.NET MVC獲取調用URL
- 26. 從視圖中獲取當前用戶
- 27. CakePHP 3在視圖中獲取當前主機
- 28. 獲取URL的路由前綴在Razor視圖的ASP.NET Web API
- 29. 當使用EditFor [asp.net mvc 3]
- 30. 在當前視圖中獲取標籤
你必須記住,一個視圖與控制器操作不同。 MVC路由基於控制器和操作。操作可以將任何視圖指定爲輸出。這意味着您不能總是依賴視圖名稱與Action相同。你能給我們一個你想用它做什麼的例子嗎? – 2012-04-09 13:42:03
@Nick Bork其實我在這裏問一個主要問題:http://stackoverflow.com/questions/10069687/use-htmlhelper-to-get-action-in-beginform-method-of-asp-net-mvc-3我在表單標籤中需要action屬性的值,我認爲這個值與當前視圖的Url相等。 – Saeid 2012-04-09 14:03:22
視圖沒有URL,控制器動作。一個View只是一些HTML的一部分。您的操作在服務器上執行一些CRUD,然後決定返回哪個HTML塊。如果不經過控制器操作(除了嵌套在視圖中的PartialView),您絕不能訪問視圖。現在,大多數視圖名稱與Action名稱匹配,但情況並非總是如此。我已經添加了一個使用Url助手的代碼示例。 Url幫助程序允許您獲取特定路線或控制器操作的URL。這應該有助於填充表單的操作標籤。 – 2012-04-09 14:30:11