首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Html.ActionLink中加粗linkText片段?

如何在Html.ActionLink中加粗linkText片段?
EN

Stack Overflow用户
提问于 2011-01-27 08:59:36
回答 2查看 1.5K关注 0票数 1

我有这个:

代码语言:javascript
复制
<li><%:Html.ActionLink(user.Email.Replace(Model.SearchString, "<b>" + Model.SearchString + "</b>"), "LoginEdit", "Admin", new { area = "Staff", webUserKey = user.WebUserKey }, null)%>, last login: <%:loginString%></li>

如您所见,我希望电子邮件字符串中与Model.SearchString匹配的部分以粗体显示。考虑到我的代码的上下文,我找不到实现这一点的语法。

有什么想法吗?

目标是这样的(假设用户搜索"john"):

代码语言:javascript
复制
<a href="Admin/Login/Edit/456546"><b>john</b>@gmail.com</a>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-27 11:19:55

每当我遇到这样的情况时,我都尽量不将HTML嵌入到HTML helper中。此外,我认为拆分你的代码将有助于将来的维护--你在一个函数调用中做了很多事情。

我更喜欢这样做:

代码语言:javascript
复制
<li> 
    <a href="<%: Url.Action("LoginEdit", "Admin", new { area = "Staff", webUserKey =user.WebUserKey }) %>"> 
        <%: user.Email.Replace(Model.SearchString, "") %>
        <b><%: Model.SearchString %></b>
    </a>
    last login: <%: loginString %>
</li>

这只是几行代码,但它使破译发生了什么变得容易得多。

票数 3
EN

Stack Overflow用户

发布于 2011-01-27 10:21:17

我认为问题在于<%: %>的输出是超文本标记语言编码的。因此,您的<b>标记可能是经过编码的,并且您在呈现的HTML中看到的是实际的标记,而不是粗体文本。

如果user.Email是一个受信任的值,您可以跳过对输出进行编码。

代码语言:javascript
复制
<li><%= Html.ActionLink(user.Email.Replace(Model.SearchString, "<b>" + Model.SearchString + "</b>"), "LoginEdit", "Admin", new { area = "Staff", webUserKey = user.WebUserKey }, null)%>, last login: <%:loginString%></li>

有关更多信息,请参阅:http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4811958

复制
相关文章

相似问题

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