如何使用Razor从脚本块中显示?

时间:2012-06-24 04:55:04

标签: asp.net-mvc-3 razor

尝试学习Razor / MVC3,并且在部分视图DisplayTemplate上遇到了一些麻烦。

@{
    DateTime? date = ViewData.Model;

    if(date.HasValue) {
        date.Value.ToShortDateString();
    }
}

这就是我想要做的。显然我没有正确地做到这一点,因为它不起作用。我已经尝试了几种不同的方式,我只能接受随机错误。这种方法根本不会返回任何内容。

2 个答案:

答案 0 :(得分:3)

强制切换到文本模式的内部代码块中的每个位置都使用<text></text>代码段。

@{
    DateTime? date = ViewData.Model;
    string displayDate = "";

    if(date.HasValue) {
         <text>
               @date.Value.ToShortDateString()
         </text>
    }
}

喝彩!

答案 1 :(得分:2)

您没有使用此语法向页面呈现任何内容;所有代码都声明一个变量 date 并将其设置为模型中的值。尝试这样的事情......

@{
    DateTime? date = ViewData.Model;
    string displayDate = "";

    if(date.HasValue) {
        displayDate = date.Value.ToShortDateString();
    }
}

@displayDate

甚至更简单,就是这样:

@if (ViewData.Model.HasValue) 
{
    <span>@ViewData.Model.ToShortDateString()</span>
}