2015-04-25 2 views
1

Я делаю этот учебник https://www.youtube.com/watch?v=WwmUFTWEh6Y, и у меня возникли проблемы с пониманием того, почему @Href не работает.MVC <form action = @ Href

@Href i amiming Он должен указывать на Update ActionResult в PostsController, но он не работает, и я не вижу никаких проблем. У меня есть PostsController, как вы можете видеть на картинке, и у меня явно есть public ActionResult Update в PostsController. Почему именно path not found?

У меня, вероятно, нет волос, оставшихся до конца учебника!

<form action="@Href

EDIT: В картине я подчеркнуты 2 вещи, но я вроде разобрался с другой.

UPDATE:

public class PostsController : Controller 
{ 

//UPDATE takes (id, title, body, datetime, tags) 
public ActionResult Update(int? id, string title, string body, DateTime dateTime, string tags) 
{ ....... 
} 
+1

Ваш скриншот не отображает код контроллера. Можете ли вы это показать? – xboxremote

+0

Несомненно. Я добавлю это через секунду, но я не думаю, что это поможет. –

+0

Кажется, у вас есть контроллер 'Должности' - если у вас есть действие' Update', это может быть просто intellisense, чтобы не грузить маршрут правильно. Вы также можете использовать '@ Url.Action (" ActionName "," ControllerName ")' для создания URL, а не '@Href (" ~/Controller/Action ")' – StuartLC

ответ

1

Вы должны использовать @Url.Action("Update", "Posts"), это гораздо более простой в использовании. Посмотрите полный список перегруженных методов here и выберите тот, который вам подходит.

В качестве альтернативы для форм вы можете использовать @Html.BeginForm(). Пример использования от here:

@using (Html.BeginForm()) 
{ 
    @Html.TextBox("Name"); 
    @Html.Password("Password"); 
    <input type="submit" value="Sign In"> 
} 
+0

Я использую '@ Url.Action (« Update »,« Posts »)' А также '@ Html.BeginForm()' вместо '

' еще интереснее. Благодарю. –

+0

Основной причиной использования @ Url.Action является то, что он будет ссылаться на вашу таблицу маршрутов и автоматически сопоставлять любые настроенные шаблоны – JDandChips