【发布时间】:2023-04-08 19:02:02
【问题描述】:
我正在为 DropDown 创建一个表单,如下所示:
@{
Html.BeginForm("View", "Stations", FormMethod.Get);
}
@Html.DropDownList("id", new SelectList(ViewBag.Stations, "Id", "Name"), new { onchange = "this.form.submit();" })
@{
Html.EndForm();
}
如果我从下拉列表中选择一个值,我会被重定向到正确的控制器,但 URL 不是我想要的:
/Stations/View?id=f2cecc62-7c8c-498d-b6b6-60d48a862c1c
我想要的是:
/Stations/View/f2cecc62-7c8c-498d-b6b6-60d48a862c1c
那么如何将 id= 查询字符串参数替换为我想要的更简单的 URL 方案?
【问题讨论】:
-
你不能。您的浏览器对您的路由配置一无所知。带有
FormMethod.Get的表单将始终将其控件的值作为查询字符串值回传(除非您要使用 javascript 拦截提交并构建自己的 url) -
好的,谢谢。如果您将此作为答案发布,我将接受它作为解决方案。 :)
标签: c# asp.net-mvc forms routing asp.net-mvc-routing