首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UrlHelper.GenerateUrl的ASP.NET MVC公共替代方案

UrlHelper.GenerateUrl的ASP.NET MVC公共替代方案
EN

Stack Overflow用户
提问于 2008-12-10 11:03:11
回答 2查看 11.4K关注 0票数 13

我想在我的页面中嵌入一个指向控制器操作的链接,这样我就可以在javascript中使用它了。就像这样

代码语言:javascript
复制
var pollAction = '/Mycontroller/CheckStatus'

现在我很乐意对它进行硬编码,但如果有一种方法可以用来创建URL,那就太好了。AjaxHelper/HtmlExtensions包含创建超链接的方法(.ActionLink(...)依此类推),但如果您深入研究它们的内部,您会发现它们依赖于一个名为UrlHelper.GenerateUrl()的方法来将控制器和操作解析为url。这是内部的,所以我不能真正了解它。

有没有人在框架中找到了一个好的方法来做到这一点?或者我必须自己滚?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-10 11:21:54

你有没有尝试过这些方法?

代码语言:javascript
复制
var pollAction = '<%=Url.Action("CheckStatus", "MyController") %>';
票数 17
EN

Stack Overflow用户

发布于 2008-12-10 11:54:56

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

如果不是,请使用以下代码:

代码语言:javascript
复制
 String url = RouteTable.Routes.GetVirtualPath
              (
                ((MvcHandler) HttpContext.Current.CurrentHandler).RequestContext,
                new RouteValueDictionary
                (
                  new 
                  { 
                    controller = "MyController", 
                    action = "CheckState", 
                    id = idParameter 
                  }
                )
              ).VirtualPath;

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

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/355700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档