モデルはASP.Net MVC 3バインド列String.Emptyのようにプロパティの代わりに、ヌルユーザーがRuStringとEnStringの値がnullの入力を記入していない場合
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; }
}
です。私はnullの代わりにstring.Emptyが必要です。このよう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
あなたは第2の方法を使うことができます! –
MVC 3に空のhtml入力をstring.Emptyとしてバインドする方法を教えてください(MVC 1のように)。 BilingualStringは、カスタムEmptyStringModelBinderがトリックをしないことを示す例です。 – AlexBBB