Помещение HTML в HTML. ActionLink (), плюс Никакой Текст ссылки?

У меня есть два вопроса:

  1. Я задаюсь вопросом, как я не могу отобразить текст ссылки при использовании Html.ActionLink() в представлении MVC (на самом деле, это Site.Master).

Нет перегруженной версии, которая не позволяет текст ссылки, и когда я пытаюсь передать в просто пробеле string, компилятор говорит мне, что ему нужна непустая строка.

Как я могу зафиксировать это?

  1. Я должен поместить <span> теги в теге привязки, но это не работает с Html.ActionLink();. Я хотел бы видеть следующий вывод:

    Текст промежутка

Как я могу вставить теги тега привязки в ASP.NET MVC?

162
задан dav_i 12 July 2013 в 08:47
поделиться

3 ответа

Вместо использования Html.ActionLink вы можете вывести url через Url. Action

<a href="<%= Url.Action("Index", "Home") %>"><span>Text</span></a>
<a href="@Url.Action("Index", "Home")"><span>Text</span></a>

И для того, чтобы сделать пустую URL, вы можете использовать

<a href="<%= Url.Action("Index", "Home") %>"></a>
<a href="@Url.Action("Index", "Home")"></a>
313
ответ дан 23 November 2019 в 21:21
поделиться

Другой опцией является пользовательское расширение HtmlHelper. Note: ParameterDictionary - мой собственный тип. Вы можете заменить словарь RouteValueDictionary, но вам придется построить его по-другому.

public static string ActionLinkSpan( this HtmlHelper helper, string linkText, string actionName, string controllerName, object htmlAttributes )
{
    TagBuilder spanBuilder = new TagBuilder( "span" );
    spanBuilder.InnerHtml = linkText;

    return BuildNestedAnchor( spanBuilder.ToString(), string.Format( "/{0}/{1}", controllerName, actionName ), htmlAttributes );
}

private static string BuildNestedAnchor( string innerHtml, string url, object htmlAttributes )
{
    TagBuilder anchorBuilder = new TagBuilder( "a" );
    anchorBuilder.Attributes.Add( "href", url );
    anchorBuilder.MergeAttributes( new ParameterDictionary( htmlAttributes ) );
    anchorBuilder.InnerHtml = innerHtml;

    return anchorBuilder.ToString();
}
17
ответ дан 23 November 2019 в 21:21
поделиться

Просто используйте Url.Action вместо Html.ActionLink:

<li id="home_nav"><a href="<%= Url.Action("ActionName") %>"><span>Span text</span></a></li>
12
ответ дан 23 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: