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

时间:2010-07-27 14:49:35

标签: jquery asp.net-mvc ajax

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

我有一条自行车详情的路线:

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

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

我想也许我应该使用下拉列表项值的URL,然后使用JQuery重定向到选定的URL。但是之前我曾经处理过旧的普通ASP.NET,我不禁想到微软的那些人已经为这样的场景想到了一些聪明的东西。

任何想法都赞赏!

2 个答案:

答案 0 :(得分:2)

我认为你的jQuery想法真的是要走的路,虽然我可能不会把它绑定到select的change事件,但有一个触发重定向的按钮。某些浏览器(尤其是使用屏幕阅读器)在更改事件时表现不佳 - 当您滚动它时为每个项目触发它。由于它会让你离开页面,对某些用户来说这可能是一件非常糟糕的事情。

您可能还需要将select包装在回发到该操作的表单中,并允许您通过该帖子进行该操作。该操作可以接受URL作为参数,并将重定向发送到URL。这将涵盖javascript关闭的情况。

答案 1 :(得分:0)

你可以这样做:

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