asp.net – 如何将HTML片段(作为委托?)传递给声明性Razor Helpe
发布时间:2020-12-16 09:45:45 所属栏目:asp.Net 来源:网络整理
导读:我一直在编写一些声明式 Razor Helpers(使用@helper语法)与 Umbraco 4.7一起使用,它现在支持Razor视图引擎(尽管我认为这同样适用于WebMatrix或ASP.NET MVC).他们都很好.但是,我想让它们更灵活,以便我可以将一个HTML片段传递给它们,这些片段可以“包裹”在输
我一直在编写一些声明式
Razor Helpers(使用@helper语法)与
Umbraco 4.7一起使用,它现在支持Razor视图引擎(尽管我认为这同样适用于WebMatrix或ASP.NET MVC).他们都很好.但是,我想让它们更灵活,以便我可以将一个HTML片段传递给它们,这些片段可以“包裹”在输出周围(但只有在有输出时).例如,我有一个帮助器(这里简化得很多)可以从一些参数生成HTML链接:
@helper HtmlLink(string url,string text = null,string title = null,string cssClass = null,bool newWindow = false) { if (!String.IsNullOrEmpty(url)) { System.Web.Mvc.TagBuilder linkTag = new System.Web.Mvc.TagBuilder("a"); linkTag.Attributes.Add("href",url); linkTag.SetInnerText(text ?? url); if (!String.IsNullOrEmpty(title)) { linkTag.Attributes.Add("title",title); } if (!String.IsNullOrEmpty(cssClass)) { linkTag.Attributes.Add("class",cssClass); } if (newWindow) { linkTag.Attributes.Add("rel","external"); } @Html.Raw(linkTag.ToString()) } } 拨打@ LinkHelper.HtmlLink(“http://www.google.com/”,“Google”)会生成HTML输出< a href =“http://www.google.com/”> Google< / a取代. 但是,如果我可以选择传入一个HTML片段,只要URL有值,那么它就会包含在生成的超链接HTML中.我基本上希望能够做到这样的事情: @LinkHelper.HtmlLink("http://www.google.com/","Google",@<li>@link</li>) 并获得输出 <li><a href="http://www.google.com/">Google</a></li> 或@ LinkHelper.HtmlLink(“”,“”,@< li> @ link< / li>) 根本没有输出. 我在Phil Haacked的博客中读到了关于Templated Razor Delegates的内容,但是在这种情况下无法理解它们是如何使用的 – 如果确实有可能的话.我感觉到我错过了什么或者吠叫了错误的树. 解决方法
我认为问题出在@link上.模板化的剃刀代表使用’magic’参数@item获取数据.尝试在模板中用@item替换@link.
另外,发布执行模板的代码 – 您的HtmlLink方法,它采用Func< dynamic,object>. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- entity-framework – 在Junction表上使用EF Core ThenInclu
- asp.net mvc客户端验证
- asp.net – 当usercontrol变得可见时执行javascript
- entity-framework – DbContext未在ASP.Net MVC中使用SQL S
- asp.net-mvc – 如何在asp.net mvc中创建一个弹出窗口?
- asp.net-mvc – Knockoutjs可编辑网格
- asp.net – dapper缓冲区/缓存的说明
- asp.net-mvc – 在Controller操作方法中重用代码的最佳方法
- asp.net-mvc-4 – 在一个项目中混合Web Api和ASP.Net MVC页
- ASP.Net MVC:用路由重写
推荐文章
站长推荐
- asp.net – 带有nginx或apache的Mono 2.11
- asp.net-mvc – 在Mono 2.4上使用Microsoft Data
- asp.net-mvc – IE9从URL中删除#part(适用于Fire
- 关于二级缓存之间同步问题的思考
- asp.net-mvc – 在AJAX请求之前单击按钮时的客户
- 在asp.net mvc上传文件代码后,通过服务器获取“连
- 缺少“ASP.NET核心Web应用程序(.NET Framework)”
- asp.net – .net网络应用程序中的异常处理
- ASP.Net 2中的上传文件在哪里?
- asp.net – 集合的Asp MVC3自定义EditorTemplate
热点阅读