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") });
단위 테스트 후 앱에서 경로가 성공했습니다. 이제 URL이이 경로를 사용하여 HTML 양식을 작성하려고합니다.
@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로 설정하면 내 사용자 지정 제약 조건이 적용됩니다. 그래서 BeginRouteForm의 RouteValueDictionary에 'httpMethod'속성을 추가하여 작동되게해야했습니다. 나를 옳은 길에 올려 줘서 고마워! – Ruprict