在MVC 5.0中编辑聚合对象时从下拉列表中获取选定值

时间:2017-06-19 15:09:58

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

DropDownList定位到模型中对象的字段时,我无法从DropDownList获取值。

  

@ Html.DropDownList(" MyID",null,htmlAttributes:new {   @class =" form-control" })

ViewBag充满了这个:

ViewBag.MyID = new SelectList(db.WFMasters, "MyID", "Code", wFDefDetail.wfDef.MyID); //MyID is property of wfDef. Model is wFDefDetail.

如果目标值是模型的属性,我可以毫不费力地获得DropDownList的值。

在这种情况下,DropDownList已正确填充,但我没有在View Controller方法中获取所选值。控制器为wFDefDetail.wfDef.MyID接收null。

此外,如果我更改为@html.EditorFor方法,我可以获得wFDefDetail.wfDef.MyID的值,所以必须是一些细节我想念DropDownList也可以工作。

2 个答案:

答案 0 :(得分:1)

为了正确地映射数据,下拉列表名称属性应与下面的模型匹配:

@Html.DropDownList("wfDef.MyID", (IEnumerable<SelectListItem>)ViewBag.MyID, htmlAttributes: new { @class = "form-control" })

答案 1 :(得分:0)

您可以使用下拉列表change event handler将表单发送到您的服务器。在下面的示例中,当更改选择控件时,将发送对您的配置文件的请求。选定的选项值将作为class Search { public static void main(String args[]) { int nums[] = { 6, 8, 3, 7, 5, 6, 1, 4 }; int val = 5; boolean found = false; for(int x : nums) { if(x == val) { found = true; break; } } if (found) System.out.println("Value found!"); } } 参数与请求一起发送。

&#13;
&#13;
tab
&#13;
$("[name=tab]").change(function() {
  $(this).parent("form").submit();
});
&#13;
&#13;
&#13;

如果表单仅包含单个数据字段,那么您可以直接在操作方法中获取选项卡值:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="https://stackoverflow.com/users/2700303/byteartisan">
  <select name="tab">
    <option value="default" disabled="disabled">Select tab...</option>
    <option value="profile">Profile Tab</option>
    <option value="topactivity">Activity Tab</option>
  </select>
</form>

如果表单发送自定义类描述的复杂数据,请使用参数对象的相应属性,例如:

public ActionResult MyAction(string tab)
{
    string SelectedValue = tab;
    // do something
}