MVC 3 Razor如何制作复杂的javascript条件?

car*_*lot 6 javascript razor asp.net-mvc-3

我有这个多行的JavaScript代码段:

$.getJSON('@Url.Action("ReconBases")', 
          { modelId: selectedModelId },
          function(selectItems) { 
            buildDropDown('#SelectedReconId', selectItems); 
          });
Run Code Online (Sandbox Code Playgroud)

我想根据视图模型变量有条件地将此脚本添加到页面中,如下所示:

@if ( Model.GetBases )
{
  <snippet above>
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我这是否可行以及正确的语法?我尝试过使用@:和Html.Raw,但我似乎无法获得正确的格式.

Tim*_*out 15

Razor中条件内的输出代码必须被HTML标记包围,例如<div></div>(这将"标记"为输出,而不是更多的C#代码).

如果没有特定标签适合您的需求,您可以使用<text></text>Razor特有的特殊标签.这些在渲染过程中不会输出.

@if ( Model.GetBases )
{
  <text>
    <snippet above>
  </text>
}
Run Code Online (Sandbox Code Playgroud)

这也适用于for,foreach等等.


Rik*_*tel 8

您还可以在此处使用 javascript 一些代码片段来设置 c# 的条件。

多行 JavaScript 代码

<text></text>

@if ( Model.SomeProp == true)
{
  <text>
    <Your javaScript Multi-line  code>
  </text>
}
Run Code Online (Sandbox Code Playgroud)

单行 JavaScript 代码

@:

@if ( Model.SomeProp == true)
{  
    @:<Your javaScript single code>  
}
Run Code Online (Sandbox Code Playgroud)