fea*_*net 26 html ternary-operator razor asp.net-mvc-3
我正在尝试做类似以下的事情
<div id="test">
@(
string.IsNullOrEmpty(myString)
? @:
: myString
)
</div>
Run Code Online (Sandbox Code Playgroud)
上面的语法是无效的,我尝试了很多不同的东西,但无法让它工作.
Dar*_*rov 52
请尝试以下方法:
@Html.Raw(string.IsNullOrEmpty(myString) ? " " : Html.Encode(myString))
Run Code Online (Sandbox Code Playgroud)
但是我建议你写一个帮助你完成这项工作,这样你就不必把意见变成意大利面了:
public static class HtmlExtensions
{
public static IHtmlString ValueOrSpace(this HtmlHelper html, string value)
{
if (string.IsNullOrEmpty(value))
{
return new HtmlString(" ");
}
return new HtmlString(html.Encode(value));
}
}
Run Code Online (Sandbox Code Playgroud)
然后在你的视图中简单地说:
@Html.ValueOrSpace(myString)
Run Code Online (Sandbox Code Playgroud)