Razor ActionLink тупой

#asp.net-mvc-3 #razor

#asp.net-mvc-3 #razor

Вопрос:

Этот тег Razor:

 @:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
  

рендерится так:

 [ Log On (/ACCOUNT/LOGON) ][/code]
  

Это сгенерированный HTML:

 [ <a href="/Account/LogOn">Log On</a> ]
  

Как мне помешать этому или он просто делает это в режиме отладки?
Если это так, это глупо, потому что это портит мое представление о моем шаблоне.

Кроме того, как мне сделать это в Razor:

 <a href="http://myexternallink.com"><img alt="external" src="@Url.Content("./Content/themes/base/images/spacer.gif")" class="icoExternal"></a>
  

Ответ №1:

Этот синтаксис

 @:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
  

просто выдает исключение, поскольку это недопустимый синтаксис.

Предполагая маршруты по умолчанию:

 [ @Html.ActionLink("Log On", "LogOn", "Account") ]
  

Визуализация:

 [ <a href="/Account/LogOn">Log On</a> ]
  

во всех режимах (Debug, Release, что угодно), что является ожидаемым поведением.

Как мне помешать этому

Это ожидаемое поведение, я не понимаю, почему вы хотите, чтобы он этого не делал? Если вам не нужны квадратные скобки, просто удалите их:

 @Html.ActionLink("Log On", "LogOn", "Account")
  

Что касается вашего второго вопроса:

 <a href="http://myexternallink.com">
    <img alt="external" src="@Url.Content("~/Content/themes/base/images/spacer.gif")" class="icoExternal" />
</a>
  

Комментарии:

1. Несмотря на то, что HTML отображается нормально, почему это должно выглядеть так: scic.com/files/eddie/mvc3_1.png

2. Я уже пробовал этот способ по второму вопросу с ужасными результатами.

3. @MB34, о нет, это совсем не похоже на это. [ <a href="/Account/LogOn">Log On</a> ] будет выглядеть так: [ LogOn ] . Я не знаю, откуда вы получаете этот результат. Что касается второго вопроса, что вы подразумеваете под ужасными результатами? Я не уверен, что понимаю вас. У вас какие-то проблемы с CSS?

4. Я знаю, что это должно выглядеть так, но я не могу понять, почему он добавляет маршрут, заключенный в () после ссылки. Я не могу найти его в своем CSS, это точно.

5. @MB34, вау, на это определенно невозможно ответить, если вы не покажете весь свой вид razor. Из опубликованного вами кода я гарантирую вам, что [ @Html.ActionLink("Log On", "LogOn", "Account") ] это невозможно отобразить.