我有一个下拉列表作为记录导航控件 - 从下拉列表中选择一个值应该“跳转到”该记录。我觉得在这之前我已经完成了这样的工作,但我无法让这个工作。问题似乎是我无法获得下拉列表来更改最初调用页面的ID路由值。所以,假设我的页面是从这个URL调用的:
/PatientProfile/Services/12
12是此处的ID路由值 - 这实际上是显示的初始记录。这有效。但是,当我从下拉列表中选择某些内容时,它会重定向到这样的内容:
/PatientProfile/Services/12?ID=7
注意路径值ID中12是如何存在的。 ID 7是从下拉列表中选择的,但它作为新参数而不是路由值附加到URL。我想要发生的是:
/PatientProfile/Services/7
这是剃须刀在我的下拉列表中的样子:
@using (Html.BeginForm("Services", "PatientProfile", FormMethod.Get))
{
@Html.Label("ID", "View Profile:")
@Html.DropDownListFor(model => model.CurrentProfile.ID, ViewBag.ProfileID as SelectList, new { onchange = "this.form.submit();" })
}
我尝试了Html.DropDownList和Html.DropDownListFor,但没有看到行为上的差异。
非常感谢任何帮助。
答案 0 :(得分:0)
我会使用jquery。请确认下拉列表的生成ID以使其正常工作
$('#CurrentProfile_ID').change(function(){
window.location('@Url.Action("Services", "PatientProfile", new { id = "----" })'.replace("----", $('#CurrentProfile_ID :selected').val()));
});
希望这有帮助。
PS。这听起来像是使用ajax调用更新的部分视图的完美情况,因此您不必回发。