MVC 模型绑定 返回后, 只返回页面上有name的值 其它都为NULL

zhengyingcan 2015-10-29 08:10:39
我正在学MVC的修改,
第一步控制器 通过 get 的方式 传到 输入页面
// GET: /Default1/Edit/5
public ActionResult Edit(int id)
{
Maticsoft.BLL.Asend bll = new Maticsoft.BLL.Asend();
Maticsoft.Model.Asend model = bll.GetModel(id);
//ViewData["Asend"] = model;
ViewData.Model = model;
return View("Edit");
}

第二步视图 输入页面主要的内容如下
@model Maticsoft.Model.Asend
@{
Layout = null;
}
<form action="/Test/Edit", method="post">
<input type="hidden" name="ID" value="@Model.ID"/>
<input value="@Model.nb" name ="nb" type="text" />
<input value="@Model.formsname" name ="formsname" type="text" />
<input id="Submit1" type="submit" value="submit" />

第三步控制器POST ,代码如下
[HttpPost]
public ActionResult Edit(Maticsoft.Model.Asend model)
{
Maticsoft.BLL.Asend bll = new Maticsoft.BLL.Asend();
bll.Update(model);
return Redirect("/Test/GetString");
}

但是我发现,模型绑定回来的model, 只有ID,nb,formsname 三个值, 其它字段都变成了null, 是不是model发到视图,展现出值后,生命周期就消失了, 通过POST返回后,已经是崭新的model的呢.


...全文
180 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
回头是岸 2015-10-30
  • 打赏
  • 举报
回复
1:mvc->namevalueprovide 这样映射的 2:另外html识别name而不识别id
zhengyingcan 2015-10-30
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
就是把你哪些其他的属性也都绑一遍
你的意思,就是页面上必须有所有的字段才行, 是不是这个意思呢, 或者有什么高明的办法
  • 打赏
  • 举报
回复
就是把你哪些其他的属性也都绑一遍
zhengyingcan 2015-10-30
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
是的,除非你页面上有对象的对应属性值,否则那些项目就是默认值
对象的对应属性值 怎么弄,代码怎么写呢
  • 打赏
  • 举报
回复
是的,除非你页面上有对象的对应属性值,否则那些项目就是默认值
zhengyingcan 2015-10-29
  • 打赏
  • 举报
回复
是否可以 model发到视图,赋值后,生命不要消失, 再通过POST返回来呢, 总之就是 来来回回, 还是以前的model, 只是某些地方经过了用户修改.

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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