asp.net-mvc-3 - ASP.Net MVC 3 将字符串属性绑定(bind)为 string.Empty 而不是 null

标签 asp.net-mvc-3

模型是

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)]
    public string RuString { get; set; }

或者
    private string _RuString;
    public string RuString {
        get {
            return this._RuString ?? "";
        }
        set {
            this._RuString = value ?? "";
        }
    }

关于asp.net-mvc-3 - ASP.Net MVC 3 将字符串属性绑定(bind)为 string.Empty 而不是 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7490210/

相关文章:

ruby-on-rails - 是否有一个等效于Rails Console的.NET?

c# - 如何在不使用mvc3的构造函数模式的情况下从ninject获取资源

WPF + WCF + MVC + EF Web/桌面应用程序

file - 在 MVC3 Razor 中显示文本文件的内容

asp.net-mvc - 在运行时替换 Controller Action

c# - 在 Razor 中创建文本框变量的方法类似于 <asp :Textbox> tag?

css - 如何在ActiveReport 中将标签中的某个单词设为粗体?

asp.net-mvc-3 - 如何在 Razor View 中编写递归函数?

jquery datatables actionlink如何添加

c# - ASP.NET MVC 3 EF Code First - 也使用现有数据库