ASP.NET MVC 3: переполнение стека на Html.Action? - PullRequest
2 голосов
/ 15 декабря 2011

По определению мне пришлось опубликовать этот вопрос. Я получил ошибку в этой строке, используя ASP.NET MVC 3 и форму ASPX. Где моя опечатка?

<a href="<%= Html.Action("About", "Home") %>">
<img src="<%= Url.Content("~/Content/images/newfront_04.jpg") %>" /></a>

StackOverflowException

Я создал пустой проект для сравнения:

  • Web Config идентична минус строки подключения (включая Views web.config)
  • Global.asax.cs, включая маршруты, идентичен минус пространство имен
  • Директива страницы идентична
  • Код Home Controller идентичен минус пространство имен
  • Извлечение этой строки заставляет все работать
  • Вся страница в формате html, за исключением директивы страницы и ContentPlaceHolders
  • Это файл Site.Master

Ответы [ 2 ]

7 голосов
/ 15 декабря 2011

Html.Action фактически рендерит это действие, в которое вы помещаете этот код, и вызывает там повторное появление.То есть: он вызывает целое действие и выводит результирующее представление ... а не выводит URL.

Вместо того, что вы, вероятно, хотели, был Html.ActionLink (который отображает для вас весь тег A), или Url.Действие, чтобы просто вывести URL-адрес, а не результат действия снова.

2 голосов
/ 15 декабря 2011

Попробуйте URL.Action вместо Html.Action

<a href="<%= Url.Action("About", "Home") %>">
<img src="<%= Url.Content("~/Content/images/newfront_04.jpg") %>" /></a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...