MVC3 - UpdateModel ...如何更改传入数据?
Posted
技术标签:
【中文标题】MVC3 - UpdateModel ...如何更改传入数据?【英文标题】:MVC3 - UpdateModel... how to change incoming data? 【发布时间】:2011-12-19 04:24:45 【问题描述】:UpdateModel 失败,因为 arcm.Notes 进入此方法时为 null,我希望它为空字符串。
也许我需要在将 Notes 设置为 "" 后刷新 ValueProvider (?),这样我才能使用 UpdateModel。
public ActionResult Edit1(Guid id, ActivityResponseConsumerMobile arcm)
if (arcm.Notes == null)
arcm.Notes = "";
if (!ModelState.IsValid)
SetupDropDowns();
return View(arcm);
ActivityResponseConsumerMobile arcmDb = uow.ActivityResponseConsumerMobiles.Single(a => a.Id == id);
try
UpdateModel(arcmDb, null, null, new[] "Id" );
【问题讨论】:
【参考方案1】:这是我相信自 MVC2 以来的默认行为。 请注意这里的一种解决方法:
http://brianreiter.org/2010/09/16/asp-net-mvc-2-0-undocumented-model-string-property-breaking-change/
public sealed class EmptyStringModelBinder : DefaultModelBinder
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
bindingContext.ModelMetadata.ConvertEmptyStringToNull = false;
return base.BindModel(controllerContext, bindingContext);
并注册活页夹
protected void Application_Start()
ModelBinders.Binders.DefaultBinder = new EmptyStringModelBinder();
RegisterRoutes( RouteTable.Routes );
【讨论】:
以上是关于MVC3 - UpdateModel ...如何更改传入数据?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC UpdateModel 不工作(使用 Devexpress)
update thinkpad bios和updatemodel number选哪个