asp.net-mvc – 在App_Code中的共享@helper中使用@Html
发布时间:2020-12-15 18:43:37 所属栏目:asp.Net 来源:网络整理
导读:我正在建立一个非常基本的MVC3网站,而我学习的时候我遇到了以下声明性的Razor html助手。 里面的RMB.cshtml里面的App_Code文件夹: @helper ReplaceCrLf(string strText){ @Html.Raw(Html.Encode(strText).Replace(Environment.NewLine,"br /"));} 在我的in
我正在建立一个非常基本的MVC3网站,而我学习的时候我遇到了以下声明性的Razor html助手。
里面的RMB.cshtml里面的App_Code文件夹: @helper ReplaceCrLf(string strText) { @Html.Raw(Html.Encode(strText).Replace(Environment.NewLine,"<br />")); } 在我的index.cshtml视图中: @RMB.ReplaceCrLf(Model.Post) 这给我在帮助者中的Html上的一个空引用异常,因为它似乎不知道它是什么。我可以通过将Html从视图传递给帮助者来解决这个问题,但是我想知道,如果我的共享html帮助者有另一种方式能够引用Html,而不必将其传递给我写的帮助器? 为了完整,这里是工作解决方法: 在App_Code中的RMB.cshtml中 @helper ReplaceCrLf(string strText,System.Web.Mvc.HtmlHelper Html) { @Html.Raw(Html.Encode(strText).Replace(Environment.NewLine,"<br />")); } 在index.cshtml视图中 @RMB.ReplaceCrLf(Model.Post,Html) 解决方法
我现在将其添加到App_Code中的任何.cshtml文件。
// Using's are needed to ensure helpers function correctly. @using System.Web.Mvc; @using System.Web.Mvc.Html; @using System.Web.Mvc.Routing; @using System.Web.Mvc.Razor; @functions { private static WebViewPage page { get { return PageContext.Page as WebViewPage; } } private static System.Web.Mvc.HtmlHelper<dynamic> html { get { return page.Html; } } private static UrlHelper url { get { return page.Url; } } private static dynamic viewBag { get { return page.ViewBag; } } } 编辑:将帮助器变量名称修改为小写,因为我与内置的助手名称有一些冲突。我已经修改了html帮助程序是通用的,它允许使用TextBoxFor等帮助程序 这使得这些精彩的助手可以使用该文件中的所有@helper方法和函数。 非常感谢Neshta的原创概念! 完整的例子来回答问题: 在App_Code文件夹中的RMB.cshtml中 @functions { public static WebViewPage page = (PageContext.Page as WebViewPage); public static HtmlHelper<object> html = page.Html; } @helper ReplaceCrLf(string strText) { @html.Raw(Html.Encode(strText).Replace(Environment.NewLine,"<br />")); } 在视图中: @RMB.ReplaceCrLf("line1nline2") // No passing HtmlHelper (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – Azure下载blob文件流/ memorystream
- 分享一个很早之前写的小工具DtSpyPlus
- asp.net – SimpleMembershipProvider不工作
- asp.net-mvc – CloudFlare SSL与ASP.NET MVC RequireHttps
- asp.net-mvc – 仅在MVC4 BundleConfig中缩小脚本
- asp.net – 使用MVC的Attribute Routing和RouteLocalizatio
- asp.net-mvc-4 – 如何验证货币字段?
- asp.net – 如何从异常中获取更多细节?
- .net core使用NLog日志
- asp.net-mvc – 使用MVC Framework RC1更新断开连接的LINQ对
推荐文章
站长推荐
- 使用asp.net mvc 3中的Last-Modified标头和Outpu
- asp.net – 如何从View中获取asp:CheckBox? (_
- asp.net – 何时填充已排序的asp:GridView?
- asp.net-mvc – 应用程序池回收导致非常长的响应
- ASP.NET CORE WEBAPI文件下载
- ASP.NET 4.0中的不同服务器和客户端缓存策略
- asp.net-mvc – 如何在编辑器模板中获取序列/数组
- iis-6 – 如何防止IIS覆盖我在ASP.NET中设置的文
- asp.net – VS2015为Class Library添加引用
- asp.net-mvc – EF 4代码如何首先处理生产环境中
热点阅读