MVC 提交整个ListBox内容到action的方法

lon123 2010-09-14 07:32:08
如题,我想提交整个ListBox的所有内容到一个action.

Html代码如下:
<%= Html.ListBox("List2", (SelectList)ViewData["List2"], new { size=7) %>

Action如下:
[HttpPost]
public ActionResult TestAction(object List2)
{
//拿到整个List2然后do something
}

但是即使我返回的是Object List2, 里面的值也只是List2中的选中的项,请问有没有办法得到整个List中的所有items?

谢谢
...全文
217 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2010-09-14
  • 打赏
  • 举报
回复
放隐藏表单是比较好的了。因为全部的列表都是自己控制的,一般没有在服务器端的得到全部选项的必要的
lon123 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 deyygywxf 的回复:]
为什么要在页面上用acton的方式提交数据呢
我建议用server.tranfor吧。提交所有数据过去。保证你的listbox中的所有数据都过去了
要是你不改变方式的话,那只能先把你的listbox集合存在隐藏域或者viewstate中。在action过去
[/Quote]

Server.transfer 和viewstate在MVC下都不适用了,有没有更好的方法呢?
deyygywxf 2010-09-14
  • 打赏
  • 举报
回复
为什么要在页面上用acton的方式提交数据呢
我建议用server.tranfor吧。提交所有数据过去。保证你的listbox中的所有数据都过去了
要是你不改变方式的话,那只能先把你的listbox集合存在隐藏域或者viewstate中。在action过去
lon123 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 gongsun 的回复:]
C# code

public ListBox(IEnumerable items, string dataValueField, string dataTextField, object selectedValue)
: base(items, dataValueField, dataTextField, ToEnumerable(selectedValue)) {
……
[/Quote]

谢谢你的回复,但是好像你好像没有理解我的问题,我是要post所有的items到一个action

做这个只是为了做一个简单的两个List互相传值, 可以把list1中的项加到list2中,当提交时,就把所有的list2中的项提交到server,然后和数据库中的list2的值做比较。
gongsun 2010-09-14
  • 打赏
  • 举报
回复

public ListBox(IEnumerable items, string dataValueField, string dataTextField, object selectedValue)
: base(items, dataValueField, dataTextField, ToEnumerable(selectedValue)) {
SelectedValue = selectedValue;
}

------------------------
//action中
var users = GetUsers();
var listbox = new ListBox(users, "Age", "Name", "24");
this.ViewData["list"] = listbox;

//页面
<%=Html.ListBox("list")%>


lon123 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yanimaziba 的回复:]
为什么要在页面上用acton的方式提交数据呢
我建议用server.tranfor吧。提交所有数据过去。保证你的listbox中的所有数据都过去了
要是你不改变方式的话,那只能先把你的listbox集合存在隐藏域或者viewstate中。在action过去
[/Quote]

Server.transfer 和viewstate在MVC下都不适用了,有没有更好的方法呢?
谢谢
jeven_xiao 2010-09-14
  • 打赏
  • 举报
回复
为什么要在页面上用acton的方式提交数据呢
我建议用server.tranfor吧。提交所有数据过去。保证你的listbox中的所有数据都过去了
要是你不改变方式的话,那只能先把你的listbox集合存在隐藏域或者viewstate中。在action过去
lon123 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hgyin212314 的回复:]
这是Java还是.Net?
没弄过
[/Quote]
Asp.net MVC
lon123 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 net_lover 的回复:]
你需要做个隐藏的控件传递所有的选项
[/Quote]

没有更好的方法了吗?
谢谢
hgyin212314 2010-09-14
  • 打赏
  • 举报
回复
这是Java还是.Net?
没弄过
Love_Air523824 2010-09-14
  • 打赏
  • 举报
回复
孟子E章 2010-09-14
  • 打赏
  • 举报
回复
你需要做个隐藏的控件传递所有的选项
KnowKjava 2010-09-14
  • 打赏
  • 举报
回复
模型数据?
Matrix_Designer 2010-09-14
  • 打赏
  • 举报
回复
可以在前台将List的所有item内容拼接成一个字符串,然后传到后台(可以通过隐藏域提交,或者Ajax异步提交),在后台再拆分开来。最好使用特殊字符分割相邻的item,如用字符'\xFF'去分割

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧