gpt4 book ai didi

asp.net-mvc-3 - Razor 在强类型的 Html.ActionLink 上不能轻松工作?

转载 作者:行者123 更新时间:2023-12-03 23:33:01 27 4
gpt4 key购买 nike

各位,

我们正在尝试使用如下所示的强类型操作链接方法:

Html.ActionLink<HomeController>

在 Razor View 引擎中。

我知道我们不应该一直使用它们,因为它会忽略过滤器等,但事实是我们确实在使用它们。

如果我尝试直接在 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");

为简洁起见省略了很多内容 :) 如您所见,它在“<”上将其拆分,我认为它将其解释为 HTML 标记,但我不能确定。

我找到了一个解决方法,但它很难看。这有效:
@{Write(Html.ActionLink<PolicySectionController>(c => c.Edit(null), "New"));}

有谁知道更好的方法来做到这一点?

最佳答案

是的,为了使用通用方法,您需要使用括号对表达式进行转义。这是否有效:

@(Html.ActionLink<PolicySectionController>(c => c.Edit(null), "New"))

关于asp.net-mvc-3 - Razor 在强类型的 Html.ActionLink 上不能轻松工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4159229/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com