解決asp.net mvc UpdateModel更新對象后出現(xiàn)null問題的方法
在用asp.net mvc 4.0做項(xiàng)目的時候遇到的這種情況:
情況分析:
“在填寫表單的時候,有一些表單沒有填寫,留空,然后直接post 提交表單,action中用UpdateModel 來更新model,結(jié)果發(fā)現(xiàn)那些沒有填寫的表單字段全部變成null。”
原因分析:
項(xiàng)目中做了判斷null不能提交更新到數(shù)據(jù)庫中,所以導(dǎo)致一直提交不上去
后來網(wǎng)上查了一下找到了解決辦法,我在這里分享一下,方便以后遇到這種情況的朋友可以方便解決
解決方法:
新建一個類繼承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命名空間時引起錯誤的解決方法
- 解決Asp.net Mvc返回JsonResult中DateTime類型數(shù)據(jù)格式問題的方法
相關(guān)文章
剖析Asp.Net Web API路由系統(tǒng)---WebHost部署方式
這篇文章主要介紹了剖析Asp.Net Web API路由系統(tǒng)---WebHost部署方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-02-02
asp.net提取多層嵌套json數(shù)據(jù)的方法
這篇文章主要介紹了asp.net提取多層嵌套json數(shù)據(jù)的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了asp.net解析json格式數(shù)據(jù)的步驟與相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-06-06
asp.net中的“按需打印”(打印你需要打印的部分) 實(shí)現(xiàn)代碼
有時我們需要對asp.net網(wǎng)頁中某些特定部分進(jìn)行打印,很多人采用CSS樣式或特定的打印控件來解決網(wǎng)頁定制打印功能。這里采用Javascript樣式替換方式進(jìn)行打印,使網(wǎng)頁顯示與打印效果相分離。2013-06-06
詳解ASP.NET Core 之 Identity 入門(二)
本篇文章主要介紹了ASP.NET Core 之 Identity 入門,主要負(fù)責(zé)對用戶的身份進(jìn)行認(rèn)證,有興趣的可以了解一下。2016-12-12
js獲取.aspx頁面里面的服務(wù)器控件和.ascx中的服務(wù)器控件值
用js獲取.ascx控件中服務(wù)器控件值時首先要得到服務(wù)器控件的ClientID再加上.ascx頁面里面的服務(wù)器空間ID并用"_"連接2009-02-02
把.net Core 項(xiàng)目遷移到VS2019 for MAC的方法步驟
這篇文章主要介紹了把.net Core 項(xiàng)目遷移到VS2019 for MAC的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03

