首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MVC3htmlhelper扩展方法来包装内容

MVC3htmlhelper扩展方法来包装内容
EN

Stack Overflow用户
提问于 2012-05-17 19:41:24
回答 2查看 11.8K关注 0票数 19

我搜索了MVC3htmlhelper来创建包装器方法,但没有找到任何快速的解决方案。我要找的东西大概是:

代码语言:javascript
复制
@html.createLink("caption", "url")
{
    <html> content in tags </html>
}

结果应该是

代码语言:javascript
复制
<a href="url" title="Caption">
  <html> content in tags </html>
</a>

能帮上忙吗。

EN

回答 2

Stack Overflow用户

发布于 2012-12-10 21:43:38

还有另一种方法,不需要一次性技巧。它的工作量更少,对小帮手来说很棒。我回答了类似的问题,不想复制所有内容,但这里有一个简短的示例:

代码语言:javascript
复制
@helper Paragraph(string cssClass, Func<object, object> markup) {
    <p class="@cssClass">@markup.DynamicInvoke(this.ViewContext)</p>
}

此辅助对象的用法如下所示:

代码语言:javascript
复制
@Paragraph("highlited", 
    @<text>
        Look, a @Html.ActionLink("link", "index")
    </text>
)

我对另一个类似问题的完整回答是here

票数 9
EN

Stack Overflow用户

发布于 2012-05-17 19:59:53

在最简单的层面上,像这样的东西就可以做到

代码语言:javascript
复制
public static MvcHtmlString SomeLink(this HtmlHelper htmlHelper, string href, string     title,  string content )
    {
        var urlHelper = ((Controller)htmlHelper.ViewContext.Controller).Url;
        //var url = urlHelper.Action(actionName, controllerName, routeValues);

        var someLink = new TagBuilder("a");
        someLink.MergeAttribute("href", href);
        someLink.InnerHtml = content;

        return new MvcHtmlString(someLink.ToString());
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10635063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档