Как выделить фрагмент linkText в Html.ActionLink? - PullRequest
1 голос
/ 27 января 2011

У меня есть это:

<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>

Как видите, я хочу, чтобы часть строки Email, которая соответствует Model.SearchString, была выделена жирным шрифтом.Я не могу понять синтаксис, чтобы это произошло, учитывая контекст моего кода.

Есть идеи?

Цель примерно такая (при условии, что пользователь искал "john"):

<a href="Admin/Login/Edit/456546"><b>john</b>@gmail.com</a>

Ответы [ 2 ]

3 голосов
/ 27 января 2011

Всякий раз, когда я сталкиваюсь с подобной ситуацией, я стараюсь изо всех сил не встраивать HTML в помощников HTML. Кроме того, я думаю, что разбивка вашего кода поможет в дальнейшем обслуживании - вы многое делаете за один вызов функции.

Я бы предпочел сделать это так:

<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>

Это еще несколько строк кода, но это значительно облегчает расшифровку происходящего.

2 голосов
/ 27 января 2011

Я думаю, проблема в том, что вывод <%: %> в кодировке HTML. Таким образом, ваш <b> тег, вероятно, закодирован, и вы видите фактический тег в отображаемом HTML вместо полужирного текста.

Если user.Email является доверенным значением, вы можете пропустить HTML-кодировку вывода.

<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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...