Ответ 1
Просто используйте @Url.Action вместо:
<a href="@Url.Action("Page","Site", new { id = Model.Id, @Type = "test" })">
<span class="box5">Click anywhere in this box</span> </a>
Как говорится в этом вопросе: возможно ли использовать ActionLink, содержащий элемент, а если нет, то какой лучший способ его достичь?
Например, допустим, что у меня есть элемент Span
, я хочу, чтобы все это была гиперссылка... Следующие работы:
<a href="/Site/Page/@Model.ID?Type=test">
<span class="box5">Click anywhere in this box</span> </a>
Представьте, что класс span/css box5 делает этот большой... Первоначально был DIV, но я обнаружил, что не соблюдал стандарты, и это, похоже, соответствует ок.
Это делает и работает отлично, но есть ли в любом случае использовать ActionLink? Я попытался угадать синтаксис, например (копирование из форм):
@using (Html.Actionlink){<span class="box5">Click anywhere in this box</span>}
и многие другие комбинации без везения.
Теперь мой ручной метод HTML работает отлично, и я рад оставить его, но возможно ли использовать MVC ActionLink, и если да, то должен ли я даже беспокоиться/будут ли какие-либо преимущества?
Просто используйте @Url.Action вместо:
<a href="@Url.Action("Page","Site", new { id = Model.Id, @Type = "test" })">
<span class="box5">Click anywhere in this box</span> </a>
Там вы можете использовать хакеры для ограничения ограничений
@Html.Raw(
Html
.ActionLink("-replace-me-", .....)
.ToString()
.Replace(
"-replace-me-",
@"<span class=""box5"">Click anywhere in this box</span>"))
он не изящный, но он выполняет работу
Html.ActionLink
представляет собой простой старый метод расширения для объекта HtmlHelper
.
Вы можете создать свои собственные настраиваемые методы расширения для HtmlHelper
, и они довольно просты в использовании и сэкономят вам тонны времени.
Вы не можете указать html-тег внутри actionlink, но я могу предложить вам два решения: 1 расширьте actionlink своей функцией. Таким образом, вы также можете реализовать actionlink, которые генерируют href с другим тегом htmal внутри (img или span, как в вашем случае)
2, используя url.content в href. Это похоже на ваше фактическое обходное решение, но лучше, потому что вы используете правила, которые вы определили в global.asax, вместо использования "волшебной строки"
Просто напишите <span> </span>
и между ними используется метод @html > ActionLink. Он будет работать