如何在下拉列表值更改时刷新页面?

时间:2012-10-23 07:24:41

标签: c# asp.net-mvc-3

我有一个常见的视图布局页面。此布局页面包含一个下拉列表,其中显示了可用日期列表。我想要的是重新加载这个页面只更改了数据参数。控制器,动作和任何其他参数应以某种方式从当前请求上下文中获取。

如果我想在每个视图上手动执行,我会说它等于

@Html.ActionLink(
     "",                                        
     "I need to have current action name here", 
     new { date = "The Value of the chosen SelectListItem" });

我怎样才能做到这一点?或者有什么不同的方法吗?

2 个答案:

答案 0 :(得分:2)

RequestContext中提供了有关当前操作的信息,您可以直接访问它:

@Url.Action(ViewContext.RequestContext.RouteData.Values["action"], 
         new { date = "The Value of the chosen SelectListItem" });

在你的情况下,我会将url添加到选项数据属性,然后使用jQuery:

$('select#yourid').change(function() {
    document.location.href = $(this).find('option:selected').data('url'));
});​

如何在下拉列表中获取数据属性更改可以在此FIDDLE中找到。

答案 1 :(得分:-2)

HTML:

<select id="mySelect" name="list" size="1"> 
   <option value="1">Option 1</option> 
   <option value="2">Option 2</option> 
</select> 
<span id="tag"></span> 

使用Javascript:

//cache the select and span elements  var mySelect =
 document.getElementById("mySelect"), 
 tag = document.getElementById("tag");    //when it changes  
 mySelect.onchange = function() { 
 //change the tag innerHTML checking the selected value of the select 
 tag.innerHTML = mySelect.value === "1" ? "some text" : "some other text";  }

这是一个例子。如果你想加载另一个页面 - 调用另一个JS函数或ajax控件