2011-11-11 2 views
8

Привет У меня возникли трудности с использованием метода Url.Action, см. Мой код ниже, что я делаю неправильно ....? (Я использую MVC Razor)MVC & Url.Action

<a href='<%: @Url.Action("Edit", "Student", 
    new { id = item.DealPostID }) %>'>Hello   </a> 

Student мой StudentController и Edit является ActionResult метод.

+0

Можете ли вы более подробно рассказать о трудностях, с которыми вы сталкиваетесь? На странице отображается ошибка? Неужели href не заполняет так, как вы ожидаете? – mjwills

+0

Извините, при нажатии на ссылку Hello это никуда не денется, href не работает. Я пытаюсь сделать так же, как @ Html.ActionLink («Изменить», «Изменить», новый {id = item.DealPostID}) .. просто используя Url.Action, чтобы я мог поместить изображение позже вместо приветствия. Я надеюсь, что это имеет смысл, что я пытаюсь сделать .. thanks – Ben

ответ

18

Удалить <%: %> с вашего вида бритвы. Это теги WebForms.

<a href='@Url.Action("Edit", "Student", 
    new { id = item.DealPostID })'>Hello   </a> 
+1

удивительный, работал. вы можете объяснить мне, когда я должен использовать <%: %>, а когда нет? – Ben

+3

Это зависит от используемого вами механизма просмотра. Синтаксис <%: для механизма просмотра WebForms, и вы используете механизм просмотра Razor, который имеет различный синтаксис для встроенного кода. Поэтому, если у вас есть проект Razor MVC, вы никогда не будете использовать этот синтаксис. –

+0

Благодарим вас за объяснение. – Ben

5

Попробуйте это:

@Html.ActionLink("Hello", "Edit", "Student", new { id = item.DealPostID }, null) 
  • Аргумент 1: Текст
  • Аргумент 2: Имя Действие
  • Аргумент 3: имя контроллера
  • Аргумент 4: Маршрут значения
  • Аргумент 5 : HtmlAttributes. Это значение равно null, чтобы он не добавлял «? Length =» к вашему URL-адресу.

Это должно сработать для вас.

+0

Если вы планируете использовать изображение для этой ссылки, создайте класс CSS, который устанавливает фоновое изображение элемента, а затем вместо «null» для HtmlAttributes аргумент, используйте «new {@class =« your_css_class »}. –

+0

Я утверждаю, что я должен был упомянуть ранее, что хочу поместить изображение вместо ссылки, поэтому я пытаюсь использовать метод Url.Action. для этого: Ben

+0

Нет проблем, но в соответствии с моим комментарием выше я нашел самый простой способ добиться этого - создать класс CSS, который устанавливает фоновое изображение, а затем применить этот класс CSS к этой ссылке. как это. при помощи! –

Смежные вопросы