Как мне сделать перенаправление JavaScript в ASP.Net MVC? - PullRequest
3 голосов
/ 06 декабря 2008

Следующий код создаст ссылку на страницу, на которую я хочу попасть.

<%= Html.ActionLink(image.Title, image.Id.ToString(), "Image") %>

Следующий код приведет к отображению правильного URL на странице.

<%= Url.Action("Index", "Image", new { id = image.Id })%>

Но когда я пытаюсь использовать его в javascript, он терпит неудачу. (со странной ошибкой в ​​наследовании страниц)

<div onclick="window.location = '<%= Url.Action("Index", "Image", new { id = image.Id })%>'">
    ...
</div>

Должен ли работать приведенный выше код? Как правильно генерировать JavaScript, описанный выше?

Обновление Есть ошибка, которую я получаю

Просмотров \ Home \ Index.aspx.cs (9): ошибка ASPNET: убедитесь, что класс определенный в этом файле кода соответствует «наследует» атрибут, и что это расширяет правильный базовый класс (например, Page или UserControl).

Похоже, это указывает на большую проблему.

Исправлено Спасибо за вашу помощь, код содержал div с runat="server". Когда я удалил это, он работает нормально. Это может быть потому, что нет формы с runat="server", но я ожидаю, что для этого будет другая ошибка.

Поскольку этот вопрос не кажется осмысленным, стоит ли его удалять?

Ответы [ 3 ]

2 голосов
/ 06 декабря 2008

Это должно работать на самом деле. ASP.NET MVC заменит все теги <% = ...%> или подобные, он не распознает, является ли это html-определением или javascript. Каков результат вашего взгляда? Является ли «странная ошибка» из Javascript или ASP.NET?

РЕДАКТИРОВАТЬ : относительно вашего обновления: убедитесь, что ваш Index.aspx имеет атрибут «Codebehind» (он находится в теге Page в первой строке), указывающий на Index.aspx.cs и атрибут «Inherits» содержит имя класса класса Page / User-Control в выделенном фрагменте кода.

1 голос
/ 06 декабря 2008

Посмотрите на this для возможного решения вашего сообщения об ошибке. Codebehind против Codefile.

0 голосов
/ 07 декабря 2008

Похоже, у вас есть HomeController с правильным методом Image? Тогда это должно быть

<%= Url.Action("Image", "Home", new { id = image.Id })%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...