在用asp.net mvc 4.0做項(xiàng)目的時(shí)候遇到的這種情況:
情況分析:
“在填寫表單的時(shí)候,有一些表單沒(méi)有填寫,留空,然后直接post 提交表單,action中用UpdateModel 來(lái)更新model,結(jié)果發(fā)現(xiàn)那些沒(méi)有填寫的表單字段全部變成null?!?br />
原因分析:
項(xiàng)目中做了判斷null不能提交更新到數(shù)據(jù)庫(kù)中,所以導(dǎo)致一直提交不上去
后來(lái)網(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();
這樣問(wèn)題就可以解決了,小編也嘗試進(jìn)行了操作,結(jié)果成功了,希望也能幫助這方面有困擾的童鞋解決實(shí)際問(wèn)題。
您可能感興趣的文章:- 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)頁(yè)出現(xiàn)亂碼問(wèn)題的解決方法
- asp.net中mvc使用ajax提交參數(shù)的匹配問(wèn)題解決探討
- 使用asp.net MVC4中的Bundle遇到的問(wèn)題及解決辦法分享
- ASP.NET在MVC中MaxLength特性設(shè)置無(wú)效的解決方法
- asp.net mvc3.0安裝失敗如何解決
- ASP.NET MVC命名空間時(shí)引起錯(cuò)誤的解決方法
- 解決Asp.net Mvc返回JsonResult中DateTime類型數(shù)據(jù)格式問(wèn)題的方法