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表单,其路径是它的网址:
@using (Html.BeginRouteForm("map-config-post", new { projectId = Model.Project.Id }))
{
//form stuff
}
这会生成一个带有空白操作属性的HTML表单。谷歌搜索,似乎这是应该工作。这是一个“新”的观点,因此目前(即回传)路线是
projects/1/mapconfigs/new
而且我希望它发布到
projects/1/mapconfigs
这是形式的行动应该是什么。
我可以手动使这一切发生,如果我不使用助手,但是然后我失去了客户端的很好的自动验证的东西。
那么,我在做什么错误的任何想法?希望我很清楚自己想要做什么。
是啊,但现在,如果我发布形式路线不delete操作到X-HTTP-Method-Override设置为DELETE,这是我的自定义约束所做的。所以,我不得不在BeginRouteForm的RouteValueDictionary中添加'httpMethod'属性来使其工作。感谢您让我走上正轨! – Ruprict 2011-01-27 16:46:49