如何从窗体获取下拉项值并传递给ASP.NET中的控制器?

时间:2016-03-11 18:27:44

标签: c# html asp.net razor

如下所示,

@{  
    if (IsPost){
         var someValue = Request.Form["item"];
        }
}

<form class="form-horizontal" method="post" action="@Url.Content("~/Home/Index")">
  <div class="btn-group">
    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
    Action <span class="caret"></span>
    </button>
      <ul class="dropdown-menu">
       <li class="dropdown-header">Items</li>
          @foreach (var item in @Model)
          {
            <li><a href="#" name="item" id="selectedItem">@item</a></li>
          }  
      </ul>
    <input type="submit" name="submit" value="Submit" />
  </div>
</form>

发生的问题是数据未传递给selectedItem的控制器。

例如,

public ActionResult Index(string item){

return View();
}

item返回null,因此似乎没有传递该值。如何以包含下拉列表的形式将信息从View传递到Controller。基本上,我希望选择下拉项目传递给控制器​​。

1 个答案:

答案 0 :(得分:0)

<a>链接会触发GET次请求,而非POST次请求,因此您的this.Request.Form将始终为空。

使用查询字符串。值由this.Request.QueryString访问:

@foreach(var item in @Model) {
    <li><a href="?item=@item">@item</a></li>
}