【发布时间】:2011-06-22 12:00:05
【问题描述】:
我正在使用带有 Razor 引擎的 ASP.Net MVC 3。
我有一个将返回@Url.Action 的html 助手。我遇到的问题是 @Url.Action 没有转换为正确的 url。相反,@Url.Action 作为 html 的一部分返回。
看起来剃须刀引擎在运行,然后 html 助手在事后运行?这对我来说似乎有点倒退。有什么我可以改变的,以便我的助手首先运行吗?
这是一个例子:
public static HtmlString Test(this HtmlHelper helper)
{
return new HtmlString("@Url.Action('Logoff', 'Login'");
}
在我的 _Layout.cshtml 我有这个..
@Html.Test()
并且 html 将显示为 @Url.Action('Logoff', 'Login')
【问题讨论】:
-
未转换为正确的网址。它究竟转换成什么?编码字符串?
-
@Url.Action 作为 html 的一部分返回。
-
你能从你的助手发布一些代码,以及你如何从视图中调用它吗?
-
显然我的示例太简单了。我实际上是在尝试返回 URL 列表。不只是一个。一天结束时我真正想要的是基于站点地图文件的动态菜单,我已经在其中进行了一些角色检查。
-
所以等等——回到我原来的观点。 HtmlHelpers 似乎无法返回 Razor 代码。相反,他们必须自己完成工作才能获得真正的 html。是这样吗?
标签: asp.net-mvc-3 razor html-helper