繁体   English   中英

ASP.NET MVC:重定向用户以使用下拉列表中的参数进行路由

[英]ASP.NET MVC: Redirect user to route with parameters from a drop down list

我有一个下拉列表( <select>标记),里面充满了自行车(更具体地说是它们的名字)。 当用户在列表中选择一辆自行车时,我希望他们被重定向到所选自行车的详细信息页面。

我有一条关于自行车详细信息的路线,例如:

routes.MapRoute("BikeDetails",
                "bike/{bikeId}",
                new {
                    controller = "Bike",
                    action = "Details"
                },
                new { bikeId = @"\d+" });

解决此问题的最佳方法是什么?

我在想,也许我应该使用URL作为下拉列表项的值,然后使用JQuery重定向到选定的URL。 但是,在接触过旧的普通ASP.NET之前,我不禁认为Microsoft的人员已经为这种情况想到了一些巧妙的方法。

任何想法赞赏!

我认为您的jQuery想法确实是可行的方法,尽管我可能不会将其与select的change事件联系在一起,但是有一个按钮可以触发重定向。 某些浏览器(尤其是使用屏幕阅读器的浏览器)在change事件中表现不佳-在滚动每个项目时将其触发。 由于它使您无法浏览页面,因此对于某些用户而言,这可能确实是一件坏事。

您可能还需要将选择包装在一个形式中,该形式回发到该动作,以及一个路由,使您可以通过该帖子到达该动作。 该操作可以接受URL作为参数,并发出对URL的重定向。 这将在关闭javascript的情况下为您服务。

你可以这样做:

$("#yourselectid").change(function(){
  window.location = "bike/" + $(this).val();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM