MVC3 -更新模型…如何更改传入数据



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" });

我认为这是自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 ); }

相关内容

  • 没有找到相关文章

最新更新