当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也可以工作。
答案 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!");
}
}
参数与请求一起发送。
tab
&#13;
$("[name=tab]").change(function() {
$(this).parent("form").submit();
});
&#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
}