我有这个:
<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"):
<a href="Admin/Login/Edit/456546"><b>john</b>@gmail.com</a>发布于 2011-01-27 11:19:55
每当我遇到这样的情况时,我都尽量不将HTML嵌入到HTML helper中。此外,我认为拆分你的代码将有助于将来的维护--你在一个函数调用中做了很多事情。
我更喜欢这样做:
<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>这只是几行代码,但它使破译发生了什么变得容易得多。
发布于 2011-01-27 10:21:17
我认为问题在于<%: %>的输出是超文本标记语言编码的。因此,您的<b>标记可能是经过编码的,并且您在呈现的HTML中看到的是实际的标记,而不是粗体文本。
如果user.Email是一个受信任的值,您可以跳过对输出进行编码。
<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
https://stackoverflow.com/questions/4811958
复制相似问题