2013-05-10 80 views
1

在问题prepopulate Html.TextBoxFor in asp.net mvc 3中,您可以看到一个答案,其中以下代码片段正常工作。空字符串返回null for textboxfor mvc 4

ViewBag.CompName = "Some Name"; 

然后在您的视图:

@Html.TextBoxFor(model =>model.Comps.CompName, new {@Value = ViewBag.CompName}) 

然而,当文本框得到一个空字符串“”的初始值,它似乎张贴空值这个文本框。

ViewBag.CompName = ""; 

这发送一个空值而不是空字符串。

有什么方法可以返回空字符串而不是null吗?

+0

而在'ViewBag'加,可以加'string.empty',而不是'ViewBag.CompName'如果是空 – 2013-05-10 15:00:38

回答

11

这是预期的行为。尝试使用DisplayFormat属性。

[DisplayFormat(ConvertEmptyStringToNull=false)]CompName顶部你的模型属性。

See Reference

例如: -

[DisplayFormat(ConvertEmptyStringToNull = false)] 
public string CompName 
{ 
    get { return _compName; } 
    set { _compName= value; } 
}