2
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に設定してください。これは私のカスタム制約が行うものです。そこで、BeginRouteFormのRouteValueDictionaryに 'httpMethod'属性を追加して動作させる必要がありました。私を正しい軌道に乗せてくれてありがとう! – Ruprict