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