【问题标题】:ASP.NET MVC public alternative to UrlHelper.GenerateUrlASP.NET MVC 公共替代 UrlHelper.GenerateUrl
【发布时间】:2008-12-10 11:03:11
【问题描述】:

我想在我的页面中嵌入一个指向控制器操作的链接,以便我可以从 javascript 中使用它。类似的东西

var pollAction = '/Mycontroller/CheckStatus'

现在我很乐意对其进行硬编码,但如果有一种方法可以用来创建 URL,那就太好了。 AjaxHelper/HtmlExtensions 包含创建超链接的方法(.ActionLink(...) 等),但是如果您深入了解它们,它们依赖于一个名为 UrlHelper.GenerateUrl() 的方法来解析控制器和动作到一个网址。这是内部的,所以我真的无法理解。

有人在框架中找到了一个很好的方法来做到这一点吗?还是我必须自己滚动?

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    您是否尝试过类似的方法?

    var pollAction = '<%=Url.Action("CheckStatus", "MyController") %>';
    

    【讨论】:

    • 我知道那里有一个简单的答案!谢谢!
    【解决方案2】:

    如果您的页面或控件继承自 ViewPage 或 ViewUserControl,请使用 Url.Action 方法。

    如果没有,请改用:

     String url = RouteTable.Routes.GetVirtualPath
                  (
                    ((MvcHandler) HttpContext.Current.CurrentHandler).RequestContext,
                    new RouteValueDictionary
                    (
                      new 
                      { 
                        controller = "MyController", 
                        action = "CheckState", 
                        id = idParameter 
                      }
                    )
                  ).VirtualPath;
    

    将它放在代码隐藏的方法中,然后从 HTML 视图中调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-03
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      相关资源
      最近更新 更多