我想在我的页面中嵌入一个指向控制器操作的链接,这样我就可以在javascript中使用它了。就像这样
var pollAction = '/Mycontroller/CheckStatus'现在我很乐意对它进行硬编码,但如果有一种方法可以用来创建URL,那就太好了。AjaxHelper/HtmlExtensions包含创建超链接的方法(.ActionLink(...)依此类推),但如果您深入研究它们的内部,您会发现它们依赖于一个名为UrlHelper.GenerateUrl()的方法来将控制器和操作解析为url。这是内部的,所以我不能真正了解它。
有没有人在框架中找到了一个好的方法来做到这一点?或者我必须自己滚?
发布于 2008-12-10 11:21:54
你有没有尝试过这些方法?
var pollAction = '<%=Url.Action("CheckStatus", "MyController") %>';发布于 2008-12-10 11:54:56
如果您的页或控件继承自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视图调用它。
https://stackoverflow.com/questions/355700
复制相似问题