我正在以下列方式使用自定义路由映射:
context.MapRoute(
"CustomRoute",
"Area/{controller}/{id}",
new { controller = "Task", action = "Index", id = UrlParameter.Optional },
new { id = @"\d+", httpMethod = new HttpMethodConstraint("GET") }
);
使用上面的路由我将跳过动作名称,通过斜杠/
传递参数,所以我希望以下列方式获得URL:
domain.com/Area/Task/982
手动输入URL效果很好。现在尝试通过@Html.BeginRouteForm
帮助程序执行相同操作:
@using (Html.BeginRouteForm("CustomRoute", new { id = Model.ID }, FormMethod.Get))
{
@Html.TextBoxFor(m => m.ID)
<button class="btn btn-default btn-sm" type="submit">Get data</button>
}
提交表单时,它会以某种方式呈现网址:domain.com/Area/Task?ID=982
上面缺少什么?如何实现所需的自定义路线?