首页 新闻 会员 周边 捐助

asp.net mvc 郁闷的问题

0
[已解决问题] 解决于 2012-08-04 15:10

 asp.net  mvc 不应该会自动匹配参加吗?

我 前台 要提交两个参数

<%=Html.CheckBox("menuId",o.Zdt_MenuRole.Count(m=>m.meanId==o.meanId)==0?false:true,new{@value=o.meanId})%>

 

后台

 [HttpPost]
        //[Description("添加菜单角色")]
        public ActionResult Create(int [] menuId,int  roleId)
        {

    .......................

   }

 

后台参数也是  menuId

可是怎么提交就只能提交 roleId

menuId 是 null 的

这是怎么回事呢?

我想也有很多人遇到这种问题了吧

前台 参加 和 后台参加名称 是相同的 可就是 有部分 参加 明明是有值的却 为 null

怎么办?

wunaigong的主页 wunaigong | 初学一级 | 园豆:4
提问于:2010-12-27 10:53
< >
分享
最佳答案
0

把你的route贴出来  应该是你路由设置有问题吧

奖励园豆:5
keepsilence | 菜鸟二级 |园豆:457 | 2010-12-27 15:57
其他回答(3)
0

如下试试:

<% if (o.Zdt_MenuRole.Any(m => m.menuId == o.menuId)) { %>
<input name="menuID" type="checkbox" value="<%: o.menuId %>" checked="checked"/>
<% } else { %>
<input name="menuID" type="checkbox" value="<%: o.menuId %>"/>
<%} %>

Html.CheckBox 只能用来绑定布尔类型数据。

鹤冲天 | 园豆:2379 (老鸟四级) | 2010-12-27 18:35
0

checkbox的name属性的值在modelbinding的时候才会与action的参数匹配,也许是这个问题

P_Chou | 园豆:210 (菜鸟二级) | 2010-12-30 00:01
0

MVC模型绑定中数组类型的Name是有特定规则的,名称中应该包含下标,所以View中应该使用下面方式:

<%=Html.CheckBox("menuId[0]",o.Zdt_MenuRole.Count(m=>m.meanId==o.meanId)==0?false:true,new{@value=o.meanId})%>

如果后面还有,则名称依次为menuId[1]、menuId[2]...

xfrog | 园豆:240 (菜鸟二级) | 2011-01-24 16:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册