加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC – 构建URL或链接的HTML扩展方法

发布时间:2020-12-16 07:26:38 所属栏目:asp.Net 来源:网络整理
导读:考虑一种扩展方法,其目的是: 渲染 a标签 在某些情况下,只返回没有链接的字符串 问题:在扩展方法中,如何利用路由值等适当的路由逻辑,而不是对字符串进行硬编码.我怀疑HtmlHelper.GenerateRouteLink是解决方案的一部分,但请建议实现这一目标的最佳方法. publ
考虑一种扩展方法,其目的是:

>渲染< a>标签
>在某些情况下,只返回没有链接的字符串

问题:在扩展方法中,如何利用路由值等适当的路由逻辑,而不是对字符串进行硬编码.我怀疑HtmlHelper.GenerateRouteLink是解决方案的一部分,但请建议实现这一目标的最佳方法.

public static string CreateUserLink(this HtmlHelper html,string userAcctName)
{
    if (string.IsNullOrEmpty(userAcctName))
        return "--Blank--";

    //some lookup to A.D.            
    DomainUser user = ADLookup.GetUserByAcctName(userAcctName);

    if (user == null)
        return userAcctName;

    //would like to do this correctly!
    return string.Format("<a href='/MyAppName/User/View/{0}' title='{2}'>{1}</a>",user.Mnemonic,user.DisplayName,user.Location);

    //normally returns http://mysite.net/MyAppName/User/View/FOO
    }

更多信息:

>使用ASP.NET MVC 1.0

解决方法

我昨天不得不做类似的事情.可能有一种更为流畅的方式,但它可以帮助我准确地看到发生了什么,所以我不承担任何责任.

public static string CreateUserLink(this HtmlHelper html,string userAcctName)
{
    if (string.IsNullOrEmpty(userAcctName))
        return "--Blank--";

    //some lookup to A.D.            
    DomainUser user = ADLookup.GetUserByAcctName(userAcctName);

    if (user == null)
        return userAcctName;

    RouteValueDictionary routeValues = new RouteValueDictionary();

    routeValues.Add("controller","User");
    routeValues.Add("action","View");
    routeValues.Add("id",user.Mnemonic);

    UrlHelper urlHelper = new UrlHelper(html.ViewContext.RequestContext);
    TagBuilder linkTag = new TagBuilder("a");

    linkTag.MergeAttribute("href",urlHelper.RouteUrl(routeValues));
    linkTag.MergeAttribute("title",user.Location);
    linkTag.InnerHtml = user.DisplayName;

    return linkTag.ToString(TagRenderMode.Normal);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读