程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> 解決asp.net mvc UpdateModel更新對象後出現null問題的方法

解決asp.net mvc UpdateModel更新對象後出現null問題的方法

編輯:ASP.NET基礎

在用asp.net mvc 4.0做項目的時候遇到的這種情況:
情況分析:
“在填寫表單的時候,有一些表單沒有填寫,留空,然後直接post 提交表單,action中用UpdateModel 來更新model,結果發現那些沒有填寫的表單字段全部變成null。”
原因分析:
項目中做了判斷null不能提交更新到數據庫中,所以導致一直提交不上去
後來網上查了一下找到了解決辦法,我在這裡分享一下,方便以後遇到這種情況的朋友可以方便解決
解決方法:
新建一個類繼承DefaultModelBinder

using System.ComponentModel;
using System.Web.Mvc;
namespace CustomerWebsite.Mvc
{
 public sealed class EmptyStringToNullModelBinder : DefaultModelBinder
 {
  protected override void SetProperty(ControllerContext controllerContext,
   ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor, object value)
  {
   if (value == null && propertyDescriptor.PropertyType == typeof(string))
   {
    value = string.Empty;
   }

   base.SetProperty(controllerContext, bindingContext, propertyDescriptor, value);
  }
 }
}

然後在Global.asax的Application_Start中替換DefaultModelBinder

ModelBinders.Binders.DefaultBinder = new EmptyStringToNullModelBinder();

這樣問題就可以解決了,小編也嘗試進行了操作,結果成功了,希望也能幫助這方面有困擾的童鞋解決實際問題。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved