Я пытаюсь использовать Html.BeginRouteForm для генерации действия для формы в моем приложении ASP.NET MVC. Маршрут, на который я нацеливаюсь, составляет:Html.BeginRouteForm не генерирует URL для именованного маршрута
//CREATE
routes.MapRoute("map-config-post", "projects/{projectId}/mapconfigs",
new { controller = controllerName, action = "Create" },
new { httpMethod = new RestfulHttpMethodConstraint("POST") });
Удостоверение модуля и его маршрут по маршруту успешно завершены. Теперь я хотел бы создать форму HTML с этим маршрутом является его URL:
@using (Html.BeginRouteForm("map-config-post", new { projectId = Model.Project.Id }))
{
//form stuff
}
Это приводит к HTML формы с пустым атрибутом действия. Похоже, что это работает. Это «Новый» вид, так что ток (т.е. постбэк) маршрут
projects/1/mapconfigs/new
И я хочу, чтобы отправлять сообщения в
projects/1/mapconfigs
, которая является то, что форма действие должно быть.
Я могу вручную сделать все это, если я не использую помощники, но затем я теряю приятные свойства авто-валидации на стороне клиента.
Итак, любые идеи о том, что я делаю неправильно? Надеюсь, ясно, что я пытаюсь сделать.
Да, но теперь это не путь к операции удаления, если я отправляю форму к которому с помощью параметра X-HTTP-Method-Override установлено значение DELETE, что и делает мое пользовательское ограничение. Таким образом, мне пришлось добавить атрибут 'httpMethod' в свой RouteValueDictionary в BeginRouteForm, чтобы он работал. Спасибо, что поставил меня на правильный путь! – Ruprict