我有一个包含以下属性的客户模型: Id,Name和AccountBalance。
客户可以注册一个帐户,但无法指定他的AccountBalance(我没有在create method参数中包含它
public ActionResult Create([Bind(Include="Id,Name")] Customer customer)
我在View方法中添加了一个HiddenFor:
@Html.HiddenFor(model => model.AccountBalance)
一切正常,客户可以创建帐户,帐户余额默认为0。
编辑客户帐户时出现问题。我不希望客户能够编辑他的帐户余额,所以我也从编辑方法中省略了它并在编辑方法的视图中添加了隐藏。例如,当我编辑客户的名称时,AccountBalance将重置为0。
如何拒绝用户更改AccountBalance,但是MVC没有将值重置为0?
提前致谢。
答案 0 :(得分:1)
Stephen Muecke 的第一个建议对我有用。还没试过第二个。
在 控制器 :
上public ActionResult Edit([Bind(Include="Id,Name,AccountBalance")] Customer customer)
然后在 查看 :
上@Html.HiddenFor(model => model.AccountBalance)
希望这对其他人有帮助并且有效! :)
答案 1 :(得分:0)
结束了Stephen Meucke的建议:
var original = db.Customers.FirstOrDefault(x => x.Id == customer.Id);
customer.AccountBalance= original.AccountBalance;
db.Entry(original).CurrentValues.SetValues(customer);
db.SaveChanges();
非常感谢!