我问了一个类似的问题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. 获取URL ASP.NET MVC 3
- 3. 如何从URL(ASP.NET MVC)中获取视图中的当前路由ID
- 4. 在asp.net mvc 2.0中获取当前url的id值
- 5. ASP.NET MVC - 如何从局部视图中获取当前操作?
- 6. 在ASP.NET中获取当前URL内嵌
- 7. 获取在asp.net mvc的当前目录
- 8. 如何从MVC HtmlHelper扩展中获取当前控制器?
- 9. 如何从asp.net mvc中的当前路由获取url参数?
- 10. 如何在ASP.NET MVC视图中获取Action的URL?
- 11. 在视图中获取当前用户名MVC 4
- 12. 如何使用ASP.NET MVC获取当前视图的物理文件夹?
- 13. 获取当前ViewContext在ASP.Net MVC
- 14. ASP.NET MVC - 当前文件夹的视图
- 15. ASP.NET MVC中的当前年份3
- 16. ASP.NET MVC - 在视图或控制器中获取当前区域名称
- 17. 返回当前URL在asp.net mvc的
- 18. 追加到ASP.NET MVC中的当前URL
- 19. CakePHP 3在视图中获取当前主机
- 20. 获取URL的路由前缀在Razor视图的ASP.NET Web API
- 21. Asp.Net MVC:我如何获得当前控制器/视图的虚拟url?
- 22. SiteMap HtmlHelper ASP.NET MVC
- 23. 当使用EditFor [asp.net mvc 3]
- 24. 在MVC 3应用程序中获取当前文化
- 25. 如何在ASP.NET MVC中的htmlHelper中获取帖子或获取状态?
- 26. 如何使用ASP.net Core在布局视图中获取url?
- 27. 在区域内的视图中使用MVC HtmlHelper扩展方法
- 28. ASP.NET MVC获取当前主机
- 29. 获取当前URL
- 30. 获取当前URL
你必须记住,一个视图与控制器操作不同。 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