2008-12-06 2 views
3

Следующий код создаст ссылку на страницу, к которой я хочу попасть.Как мне перенаправить JavaScript в ASP.Net MVC?

<%= 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, предпринятого выше?

Update Там ошибки я получаю

Views \ Home \ Index.aspx.cs (9): ошибка ASPNET: Убедитесь, что класс определен в этом файле кода совпадает с ' inherits ', и что он расширяет правильный базовый класс (например, Страница или UserControl).

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

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

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

+0

Это что-то еще, по крайней мере, с быстрым тестом здесь, приведенный выше код работает. – MrJavaGuy 2008-12-06 20:06:40

ответ

2

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

EDIT: относительно вашего обновления: убедитесь, что ваш index.aspx имеет атрибут «CodeBehind» (это в Page-метки на самой первой линии), указывающий на Index.aspx.cs и атрибут «Inherits» содержит имя класса класса Page/User-Control в коде.

1

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

0

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

<%= Url.Action("Image", "Home", new { id = image.Id })%> 
Смежные вопросы