asp.net-mvc-3 – 剃刀不能轻松地使用强类型的Html.ActionLink?
发布时间:2020-12-15 23:05:38 所属栏目:asp.Net 来源:网络整理
导读:伙计们, 我们试图使用强类型的动作链接方法,如下所示: Html.ActionLinkHomeController 在剃须刀视图引擎. 我知道我们不应该一直使用它们,因为它忽略过滤器等,但实际上我们是使用它们. 如果我尝试直接在剃刀中使用这样的话: @Html.ActionLinkHomeController
伙计们,
我们试图使用强类型的动作链接方法,如下所示: Html.ActionLink<HomeController> 在剃须刀视图引擎. 我知道我们不应该一直使用它们,因为它忽略过滤器等,但实际上我们是使用它们. 如果我尝试直接在剃刀中使用这样的话: @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:devTheNetworkPOCWebViewsPolicyEdit.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")rnrnrnrn"); 为简洁起见省略了很多东西:)正如你所看到的,它将它分割在“<”我认为这是将HTML解释为HTML标签,但我无法确定. 我找到了一个解决方法,但它是丑陋的.这样做: @{Write(Html.ActionLink<PolicySectionController>(c => c.Edit(null),"New"));} 有没有人知道一个更好的方式来做到这一点? 解决方法
是的,为了使用泛型方法,你需要使用括号来转义表达式.这将工作:
@(Html.ActionLink<PolicySectionController>(c => c.Edit(null),"New")) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
- asp.net – ASP核心:如何设置httpContext.User?
- ASP.Net MVC的ViewBag一个坑,不要跳进去
- asp.net – 为什么要模拟HttpContext,如果它可以
- asp.net – 在为app_offline.htm提供特定URL时,将
- asp.net – Web Forms错误消息:“这不是scriptl
- asp.net-mvc-3 – FluentValidation – 验证跨多
- asp.net-mvc – ASP.NET MVC的最佳实践
- asp.net-mvc – asp.net mvc数据库交互验证
- asp.net-mvc – ASP.NET MVC V2 – 好友类
- asp.net-mvc – 带接口的ASP.NET MVC UpdateMode
热点阅读