asp.net – MVC 3 htmlhelper的扩展方法来包装内容
发布时间:2020-05-23 15:38:44 所属栏目: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 – 什么时候应该在ASP.NET MVC中使用异步控制器
- asp.net – 使用AJAX进行WCF调用
- asp.net-mvc – 如何在ASP.Net MVC中对自定义ActionFilter进
- asp.net-mvc – 在MVC 3中回发到控制器操作后,ViewModel集合
- asp.net-mvc – 跨项目共享剃刀视图
- Asp.net Images随机提供401个未经授权的错误
- asp.net-mvc – 如何在MVC中排除此syntext中的另一个属性[B
- 为什么MVC而不是好的旧ASP.NET?还没有抓住为什么要走这条路
- 如何使我的ASP.NET服务器控件将嵌入式代码块作为属性值?
- Asp.Net 音频文件上传和播放代码
推荐文章
站长推荐
- asp.net – MiniProfiler.Stop()上的MVC Mini Pr
- asp.net-mvc – 避免@html.checkboxfor的foreach
- asp.net-mvc-3 – MVC3 AllowHtml属性的问题
- asp.net – 使用Post后面的Post方法重定向到另一
- asp.net-mvc – Asp.net Identity使用什么算法来
- asp.net-core – 在Visual Studio CTP2中的ASP.V
- ASP.NET C#SignalR流到客户端
- 如何使用Castle Windsor与ASP.Net Web表单?
- asp.net-mvc – asp.net mvc – 视图中的命名空间
- 在asp.net webforms中使用jquery调用webmethod
热点阅读
