首页 新闻 会员 周边 捐助

MVC 提交修改单表某一列数据,如何传model?

0
悬赏园豆:15 [已解决问题] 解决于 2014-05-12 09:16

View:

@using (Html.BeginForm("AEdit", "Home", FormMethod.Post))
{
<input type="submit" value="确定修改" />
<table><tbody>
@foreach (table_question qname in ViewBag.art1)
{
<tr>
 <td><input type="text" value="@m.Answer"/></td>     
</tr>
}
</tbody></table>
}

控制:

[HttpGet]
public ActionResult AEdit()
{
ViewBag.art1 = (from a in db.cl_fy_question where a.FYID == 1 select a).ToList(); 
return View(ViewBag.art1);
}

[HttpPost]
/// <summary>
/// 执行修改
/// </summary>
/// <param name="m"></param>
public ActionResult AEdit(List<table_question> m)
{
try
{
foreach(table_question f in m){

db.Entry(f).State = EntityState.Modified;
}
db.SaveChanges();
return Content("Success!");
}
catch (Exception ex)
{
return Content("修改失败!" + ex.Message);
}
}

蓝色字部分如何修改?

甲馨惗的主页 甲馨惗 | 初学一级 | 园豆:42
提问于:2013-11-26 09:44
< >
分享
最佳答案
1

提交List<Model>,需要采用如下构造:
@{
var list=ViewBag.art1 as List<art1able_question>();
for(var i=0;i<list.Count;i++)
{
<tr><td><input type="text" value="@m.Answer" name="[@i].Answer" /></td></tr>
}

}
如上的方式可以提交List,不过如果你是单行提交,直接拼接一个json对象更简单。

收获园豆:10
幻天芒 | 高人七级 |园豆:37207 | 2013-11-27 15:58
其他回答(2)
0

这样不行吧,得在页面上组织好数据,组织成List格式的数据,传过来

平常心队长 | 园豆:1113 (小虾三级) | 2013-11-26 10:29

求解?(from a in db.cl_fy_question where a.FYID == 1 select a) 是获取的数据,有很多行

支持(0) 反对(0) 甲馨惗 | 园豆:42 (初学一级) | 2013-11-26 10:38

如何组织?

支持(0) 反对(0) 甲馨惗 | 园豆:42 (初学一级) | 2013-11-26 10:39

@甲馨惗: 你看这个页面,http://www.cnblogs.com/domybest/archive/2011/10/17/2215556.html

这个是需要让MVC自动识别的.

支持(0) 反对(0) 平常心队长 | 园豆:1113 (小虾三级) | 2013-11-26 10:59

@zhangliming: 这个不行吧 

支持(0) 反对(0) 甲馨惗 | 园豆:42 (初学一级) | 2013-11-26 11:31

@zhangliming: 能否帮忙改下?

支持(0) 反对(0) 甲馨惗 | 园豆:42 (初学一级) | 2013-11-26 11:36

@甲馨惗: 我的意思是你想要让Action识别出这个List<Model>,需要在页面渲染的时候处理下,用Html.LabelFor

支持(0) 反对(0) 平常心队长 | 园豆:1113 (小虾三级) | 2013-11-26 11:44

@zhangliming: 刚接触MVC没多久,这个不是很熟,可否贴个代码出来?

支持(0) 反对(0) 甲馨惗 | 园豆:42 (初学一级) | 2013-11-26 11:58
1

在前端用js做要编辑的数据,组成json对象数组,用$.ajax传到ActionResult AEdit(List<table_question> m)中,mvc本身就给反序列化了!

收获园豆:5
junjieok | 园豆:779 (小虾三级) | 2013-11-26 12:08

不通过js拼接字符,能否通过model来实现?

支持(0) 反对(0) 甲馨惗 | 园豆:42 (初学一级) | 2013-11-26 12:35

@甲馨惗: @foreach (table_question qname in ViewBag.art1)

<tr>
 <td><input type="text" value="@m.Answer"/></td>     
</tr>

改成

@foreach (table_question qname in ViewBag.art1)

<tr>
 <td><input type="text" value="@m.Answer" name="@m.Answer" /></td>     
</tr>

试一试看睦

支持(1) 反对(0) junjieok | 园豆:779 (小虾三级) | 2013-11-26 17:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册