获取url参数

时间:2013-09-12 17:43:13

标签: c# asp.net

这是我想要做的。我正在尝试将下拉选定值传递给我的控制器。

我有一个这样的下拉菜单:

@Html.DropDownList("divs", null, "--Select--", new {id="divs", onchange="SelectedIndexChanged(this.value);" })  

@section Scripts 
{
  <script>

     function SelectedIndexChanged(divs) {   
         document.getElementById('divs').href = 
                  '/Controllers/MyFunction?divs=' + divs;
     }

  </script>
}

在我的控制器中,我试图得到值div:

public MyFunction (string divs)
{
    string type = Request.QueryString["divs"];
    MessageBox.Show(type); //this is empty
}

2 个答案:

答案 0 :(得分:0)

从我的头编译器输入这个,所以它可能不太正确,但应该让你更近。

@Html.DropDownList("divs", null, "--Select--", new { id="divs"})

@section Scripts 
{
  <script>
  $(function() {
    $("#divs").change(function() {
      val selected = $(this).find(":selected").val();
      $.ajax({
        type: 'POST',
        url: '@Url.Action("MyFunction", "Controller", new { divs = selected })',
        dataType: 'json',
      });
    });
  });
  </script>
}

在您的控制器中:

public ActionResult MyFunction (string divs)
{
   ...
}

答案 1 :(得分:0)

我相信这就是你要做的。这不是一个完整的解决方案,你必须解决它。

注意:我在javascript部分使用jQuery。

动作:

public JsonResult MyFunction (string divs)
{
    return Json(divs, JsonRequestBehavior.AllowGet);
}

查看:

$(function() {
    $("#divs").changed(function() {
        $.ajax({
            url: '/controllers/myfunction'
            , cache: false
            , type: 'GET'
            , dataType: 'json'
            , data: { divs = $(this).val() }
        }).done(function (data) {
            alert(data);
        });
    });
});

您可以从下拉声明中删除该javascript绑定。