.net - 如何在控制器 MVC 中选择 Html 选择列表值我的代码附加
问题描述
在视图中我有 Jquery 从
@Html.ListBoxFor(m => m.SelectedQuestions, Model.Questions, new { id = "ChooseLeft",MultiSelectList=true })
至
<select id="ChooseRight" multiple="multiple"></select>
我正在使用的 Jquery 函数是,
<script type="text/javascript">
$(function () {
$("#ShiftRight,#ShiftLeft").click(function (event) {
var ID = $(event.target).attr("ID");
var ChooseFrom = ID == "ShiftRight" ? "#ChooseLeft" : "#ChooseRight";
var moveTo = ID == "ShiftRight" ? "#ChooseRight" : "#ChooseLeft";
var SelectData = $(ChooseFrom + " :selected").toArray();
$(moveTo).append(SelectData);
SelectData.remove;
});
});
</script>
将值左列表移动到右列表工作正常。但是当我试图从控制器中的右列表中获取值时,我得到空值异常,
string ListValue = Request.Form["ChooseRight"].ToString();
希望你的建议
谢谢
解决方案
为了使用Request.Form
集合索引器,您必须向元素添加name
属性:<select>
<select id="ChooseRight" name="ChooseRight" multiple="multiple"></select>
此 MSDN 参考中提到了添加name
属性的原因:
该
Form
集合由请求正文中的参数名称(即表单元素)索引。的值Request.Form[element]
是请求正文中出现的所有元素值的数组。
如果您不想name
手动添加属性,只需创建另一个ListBoxFor
具有不同属性的绑定:
@Html.ListBoxFor(m => m.ChooseRight, null, new { id = "ChooseRight", MultiSelectList = true })
然后像这样使用ChooseRight
属性(带List<string>
类型)来获取值:
string ListValue = string.Join(",", model.ChooseRight);
工作示例:.NET Fiddle
推荐阅读
- python - 如何从 DataFrame 中获取包含多个字典的数据
- php - PHP & PHPMailer:禁用 fopen 时无法发送附件
- google-bigquery - 如何从 BigQuery 中的本机查询修改外部 SQL 查询字符串?
- android - 如何使用 Mp3agic jar Android studio 从 MP3 文件中获取 ID3 歌词标签?
- php - 如何解析和替换 html 文件中的俄语单词和短语?
- r - google_places API 返回了意外的类型
- node.js - 除 getEmployees 外,所有其他路由都在工作,它显示“内部服务器错误!”
- sql - Oracle SQL 查询缺少月份
- javascript - 递归 setTimeout 中的递归 setTimeout
- java - 在类文件中引用多个枚举之一