asp.net – MVC 3 htmlhelper的扩展方法来包装内容
发布时间:2020-12-16 00:41:52 所属栏目:asp.Net 来源:网络整理
导读:我搜索,但找不到任何快速的解决方案,MVC 3 htmlhelper创建一个包装方法。我正在寻找的是像: @html.createLink("caption","url"){ html content in tags /html} 结果应该有 a href="url" title="Caption" html content in tags /html/a 任何帮助这个。 解
我搜索,但找不到任何快速的解决方案,MVC 3 htmlhelper创建一个包装方法。我正在寻找的是像:
@html.createLink("caption","url") { <html> content in tags </html> } 结果应该有 <a href="url" title="Caption"> <html> content in tags </html> </a> 任何帮助这个。 解决方法
使用BeginForm的方式是返回类型MvcForm意味着IDisposable,以便在使用语句中使用时,MvcForm的Dispose方法会写出关闭< / form>标签。
你可以编写一个完全相同的扩展方法。 这是我刚才写的来演示的。 首先,扩展方法: public static class ExtensionTest { public static MvcAnchor BeginLink(this HtmlHelper htmlHelper) { var tagBuilder = new TagBuilder("a"); htmlHelper.ViewContext.Writer .Write(tagBuilder.ToString( TagRenderMode.StartTag)); return new MvcAnchor(htmlHelper.ViewContext); } } 这是我们的新类型,MvcAnchor: public class MvcAnchor : IDisposable { private readonly TextWriter _writer; public MvcAnchor(ViewContext viewContext) { _writer = viewContext.Writer; } public void Dispose() { this._writer.Write("</a>"); } } 在你的意见中,你现在可以做: @{ using (Html.BeginLink()) { @Html.Raw("Hello World") } } 结果如下: <a>Hello World</a> 稍微扩展以处理您的确切要求: public static MvcAnchor BeginLink(this HtmlHelper htmlHelper,string href,string title) { var tagBuilder = new TagBuilder("a"); tagBuilder.Attributes.Add("href",href); tagBuilder.Attributes.Add("title",title); htmlHelper.ViewContext.Writer.Write(tagBuilder .ToString(TagRenderMode.StartTag)); return new MvcAnchor(htmlHelper.ViewContext); } 和我们的观点: @{ using (Html.BeginLink("http://stackoverflow.com","The Worlds Best Q&A site")) { @Html.Raw("StackOverflow - Because we really do care") } } 产生结果: <a href="http://stackoverflow.com" title="The Worlds Best Q&A site"> StackOverflow - Because we really do care</a> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在路由路径中公开属于MVC应用程序中的区域的
- asp.net – GridView RowUpdating无法获取新值
- .net-core – 存储Azure Vault客户端ID和客户端密钥
- asp.net-mvc – 如何测试ASP MVC应用程序以获得基于用户的安
- asp.net-mvc – 在MVC3中,我应该有独立的“编辑”模型与“显
- ASP.NET在文本框中显示列表框中的选定项目
- asp.net – 使用Visual Studio 2017在.NET Core解决方案上没
- asp.net – 在ascx文件中使用if条件
- 在asp.net mvc2项目中不需要MS脚本的JQuery验证
- ASP.NET C#目标空白无法在LinkBut??ton上运行
推荐文章
站长推荐
热点阅读