MVC 模型绑定 回来后, 只返回页面上有name的值 其它都为NULL
MVC 模型绑定 返回后, 只返回页面上有name的值 其它都为NULL
我正在学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的呢.
------解决思路----------------------
是的,除非你页面上有对象的对应属性值,否则那些项目就是默认值
------解决思路----------------------
就是把你哪些其他的属性也都绑一遍
------解决思路----------------------
1:mvc->namevalueprovide 这样映射的
2:另外html识别name而不识别id
我正在学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的呢.
------解决思路----------------------
是的,除非你页面上有对象的对应属性值,否则那些项目就是默认值
------解决思路----------------------
就是把你哪些其他的属性也都绑一遍
------解决思路----------------------
1:mvc->namevalueprovide 这样映射的
2:另外html识别name而不识别id