获取DropgownList的值,该值位于webgrid内,每个下拉列表都是模型的属性

时间:2014-07-18 07:59:33

标签: asp.net-mvc webgrid dropdownlistfor

我有一个webgrid包含一个下拉列表,其中包含每个用户的不同项目(项目已分组)。我想将所选值输出到控制器。我怎样才能做到这一点。继承人我的;

型号:

public SelectList AvailableDevices { get; set; }

查看:

...

 var grid = new WebGrid(Model. ...
..
..

 grid.Column(header: "AvailableDevices", format: @item => Html.DropDownList("value", (IEnumerable<SelectListItem>)item.AvailableDevices)),

我有一个提交按钮

@using (Html.BeginForm("AssignUserDevices", "Device"))
{
    <input type="submit" value="setUserDevice" onchange="CheckSelectedDevices()" />
}

我想根据用户类型设置用户设备。我知道他的选择是什么,并根据他的类型发送下拉物品。因此,webgrid中的每个项目都彼此不同。

而且我也不知道如何为webgrid中的每个项目提供索引。(我想我们需要它。)

我是MVC的新人,所以希望你能理解。

感谢;

1 个答案:

答案 0 :(得分:0)

我从我们的要求中获得了您想要所选项目并在发布之前在表单字段中具有该项目值,如果是,那么您可以按照给定的那样。

  @Html.DropDownList("value", (IEnumerable<selectlistitem>)item.AvailableDevices), new      {@class="deviceclass"} )

 @using (Html.BeginForm("AssignUserDevices", "Device"))
 {
    <input type="hidden" value="" name="deviceId" id="deviceId" />
    <input type="hidden" value="" name="userId" />
    <input type="submit" value="setUserDevice" />
 }

  <script>
     $(".deviceclass").on('change', function () {
        var dropdownvalue = $(this).val();
        $('#deviceId').val(dropdownvalue);
    })
</script>
  

您可以在控制器中定义一个动作功能

public ActionResult Details(string deviceId, string userId)
    {
        // do as you need. 
        return View();
    }