获取当前视图与网址的HtmlHelper在ASP.NET MVC 3

问题描述:

我问一个类似的问题here我觉得这是一个非常容易的(当然不是对我来说)。我有一个HTML辅助扩展一个方法,我需要获得当前视图与网址的HtmlHelper。没有人有任何想法呢?

I ask a similar question here I think this is a really easy one (of course not for me). I have a extension method for Html helper and I need to get current view's url with HtmlHelper. Does anyone have any idea about it?

根据您的意见和原来的线程您链接到我认为你想用URL助手来获取表单操作的网址,但我可以有误解你想要的:

Based on your comment and the original thread you linked to I think you want to use a Url helper to get the URL for the form action, but I could have misunderstood what you wanted:

在一个视图:

 @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);
 }