2012-06-24 26 views
1

我是尝试使用来学习Razor/MVC3,并对这个局部视图DisplayTemplate有点麻烦。如何使用Razor从脚本块显示?

@{ 
    DateTime? date = ViewData.Model; 

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

这就是我想要做的。很明显,我没有正确地做,因为它不工作。我尝试过几种不同的方式,我可以想到,只收到随机错误。这种方法根本不会返回任何东西。

回答

2

您不会使用此语法向页面显示任何内容;所有代码都会声明变量日期并将其设置为模型中的值。尝试这样的事情......

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

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

@displayDate 

或者更简单,只是这样的:

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

这些都是很好的答案,但你实际上告诉我发生了什么事情,并让我面对面。谢谢。 – Blanky

3

每一个地方内部代码块强制切换到文本模式下使用<text></text>片段。

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

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

干杯!