解決asp.net mvc UpdateModel更新對象后出現null問題的方法
在用asp.net mvc 4.0做項目的時候遇到的這種情況:
情況分析:
“在填寫表單的時候,有一些表單沒有填寫,留空,然后直接post 提交表單,action中用UpdateModel 來更新model,結果發(fā)現那些沒有填寫的表單字段全部變成null?!?br />
原因分析:
項目中做了判斷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();
這樣問題就可以解決了,小編也嘗試進行了操作,結果成功了,希望也能幫助這方面有困擾的童鞋解決實際問題。
- asp.net“服務器應用程序不可用” 解決方法
- ASP.NET MVC運行出現Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解決方法
- ASP.NET MVC使用Ajax的輔助的解決方法
- ASP.NET MVC中解析淘寶網頁出現亂碼問題的解決方法
- asp.net中mvc使用ajax提交參數的匹配問題解決探討
- 使用asp.net MVC4中的Bundle遇到的問題及解決辦法分享
- ASP.NET在MVC中MaxLength特性設置無效的解決方法
- asp.net mvc3.0安裝失敗如何解決
- ASP.NET MVC命名空間時引起錯誤的解決方法
- 解決Asp.net Mvc返回JsonResult中DateTime類型數據格式問題的方法
相關文章
1個文件如何輕松搞定Asp.net core 3.1動態(tài)頁面轉靜態(tài)頁面
這篇文章主要給大家介紹了關于如何通過1個文件輕松搞定Asp.net core 3.1動態(tài)頁面轉靜態(tài)頁面的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Asp.net core 3.1具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2020-05-05Visual Studio 2017 (VS 2017)離線安裝包制作方法
這篇文章主要為大家詳細介紹了Visual Studio 2017離線安裝包的制作方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03ASP.NET數據綁定之DataList控件實戰(zhàn)篇
這篇文章主要為大家介紹了ASP.NET數據綁定中的DataList控件,DataList控件以表的形式呈現數據,通過該控件,您可以使用不同的布局來顯示數據記錄,對DataList控件感興趣的小伙伴們可以參考一下2016-01-01ASP.NET中防止頁面刷新造成表單重復提交執(zhí)行兩次操作
本文主要介紹在Session存儲唯一標識Token,通過和后臺對比,以實現防止刷新提交表單的問題。2016-04-04ASP.NET獲取各級目錄Server.MapPath詳解全
ASP.NET獲取各級目錄Server.MapPath詳解全,需要的朋友可以參考下。2011-12-12