если ни один маршрут не добавлен, форма действия не создается, почему? - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть это в области

<form action='@Url.Action("/DeleteCoverage")'></form>

, но это дает только следующий HTML

<form action=''></form>

, но следующий код

@using (Html.BeginForm("DeleteCoverage", "Coverage", new { area = "Coverage" },      FormMethod.Post, new { id = "delform" })) 

дает HTML

 <form action="/Coverage/DeleteCoverage/af361feb-1818-430b-803c-e332a162b0e2" id="delform" method="post">

Я получаю этот HTML, только если я добавлю маршрут для этого метода.В противном случае он просто становится action=""

Почему я не получаю правильный HTML, если не добавляю маршрут?

1 Ответ

2 голосов
/ 30 ноября 2011

Вы неправильно используете хелпер Url.Action.Этот помощник имеет несколько перегрузок и ожидает, что вы передадите действие, контроллер, значения маршрута, ... В настоящее время вы передаете /DeleteCoverage, которое является недопустимым именем действия (имена действий не могут начинаться с /).

Итак, выберите одну из перегрузок и используйте ее правильно:

<form action="@Url.Action("DeleteCoverage", "Coverage", new { area = "Coverage" })"></form>

О, и, кстати, вам, вероятно, следует использовать Html.BeginForm для генерации тегов формы вместо их жесткого кодирования.

...