大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – 在App_Code中的共享@helper中使用@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)
// 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 PageCo@R_450_10443@t.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 = (PageCo@R_450_10443@t.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("line1\nline2") // No passing HtmlHelper
以上是大佬教程为你收集整理的asp.net-mvc – 在App_Code中的共享@helper中使用@Html全部内容,希望文章能够帮你解决asp.net-mvc – 在App_Code中的共享@helper中使用@Html所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。