模型是ASP.Net MVC 3綁定字符串屬性作爲的String.Empty代替空
public partial class BilingualString
{
public string RuString { get; set; }
public string EnString { get; set; }
}
public partial class Member
{
public Member()
{
this.DisplayName = new BilingualString();
}
public BilingualString DisplayName { get; set; }
}
如果用戶不填輸入RuString的值和EnString爲空。我需要string.Empty而不是null。
使用CustomModelBinder這樣的:
public class EmptyStringModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
bindingContext.ModelMetadata.ConvertEmptyStringToNull = false;
return base.BindModel(controllerContext, bindingContext);
}
}
沒有幫助。
如果我們不想將每個字符串字段標記爲'[DisplayFormat(ConvertEmptyStringToNull = false)]''怎麼辦? – AlexBBB
你可以用第二種方式! –
問題是如何告訴MVC 3將空html輸入綁定爲string.Empty,而不是null(就像在MVC 1中一樣)。 BilingualString就是一個例子,表明自定義的EmptyStringModelBinder不會這麼做。 – AlexBBB