【发布时间】:2010-11-11 21:01:18
【问题描述】:
伙计们,
我们正在尝试使用如下所示的强类型操作链接方法:
Html.ActionLink<HomeController>
在 Razor 视图引擎中。
我知道我们不应该一直使用它们,因为它会忽略过滤器等,但事实是我们确实使用它们。
如果我尝试像这样在 Razor 中直接使用它:
@Html.ActionLink<HomeController>(c => c.Index, "Home")
我收到以下错误:
CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
如果您查看编译后的代码,那是因为 Razor 没有像您预期的那样解析该语句。编译后的源代码,从具有该行的错误中看起来像这样:
...
Line 101: #line 13 "C:\dev\TheNetwork\POC\Web\Views\Policy\Edit.cshtml"
Line 102: Write(Html.ActionLink);
Line 103:
Line 104:
Line 105: #line default
Line 106: #line hidden
Line 107: WriteLiteral("<PolicySectionController>(c => c.Edit(null), "New\")\r\n\r\n\r\n\r\n");
为简洁起见省略了很多东西 :) 正如你所看到的,它将它拆分为“
我找到了一种解决方法,但它很难看。这有效:
@{Write(Html.ActionLink<PolicySectionController>(c => c.Edit(null), "New"));}
有人知道更好的方法吗?
【问题讨论】:
标签: asp.net-mvc-3 razor