Asp.net mvc 4 cshtml页面的格式/布局

Asp.net mvc 4 cshtml页面的格式/布局,asp.net-mvc-4,razor,syntax,Asp.net Mvc 4,Razor,Syntax,我之前在这个问题上得到了很多帮助,但是这个问题还没有完全解决。我现在被另一件事缠住了。我从控制器返回一个响应,并在Index.cshtml中接收它,如下所示: var rData = @Html.Raw(Json.Encode(Model.WarehouseResults)); <script type="text/javascript"> var from = 0, to = from + rData.length; //data.length = parseInt(r

我之前在这个问题上得到了很多帮助,但是这个问题还没有完全解决。我现在被另一件事缠住了。我从控制器返回一个响应,并在Index.cshtml中接收它,如下所示:

var rData = @Html.Raw(Json.Encode(Model.WarehouseResults));
  <script type="text/javascript">

  var from = 0, to = from + rData.length;
//data.length = parseInt(resp.total);
for (var i = 0; i < rData.length; i++) {
    data[from + i] = rData[i];
    data[from + i].index = from + i;
}

onDataLoaded.notify({ from: from, to: to });

   grid = new Slick.Grid("#myGrid", rData, columns, options);

 etc etc...

</script>
现在我需要将这些数据分配给slickgrid,如下所示:

var rData = @Html.Raw(Json.Encode(Model.WarehouseResults));
  <script type="text/javascript">

  var from = 0, to = from + rData.length;
//data.length = parseInt(resp.total);
for (var i = 0; i < rData.length; i++) {
    data[from + i] = rData[i];
    data[from + i].index = from + i;
}

onDataLoaded.notify({ from: from, to: to });

   grid = new Slick.Grid("#myGrid", rData, columns, options);

 etc etc...

</script>
如果我把它放在标记上方(但在@Scripts部分内),我会得到一个错误,说rData没有定义。然后,当我把它放在标记中时,我得到一个语法错误:“IHtmlString HtmlHelper.Raw(字符串值)(+1重载)返回非HTML编码的标记”


这条线到底应该去哪里?cshtml页面是否有一个标准格式,比如哪些部分放在哪里?如果是这样,有人能为它提供一个链接或其他东西吗?

使用MVC 5中的代码:-

var rData = @Html.Raw(Json.Encode(Model.WarehouseResults));
我发现行末尾的分号会导致语法错误

我目前正在使用的一个解决方案(我的示例是jqueryautocomplete)应该也适用于您的示例,如下所示

在HtmlHelper中完全创建javascript变量代码。这将放置在视图的@section脚本中

@section Scripts {
    <script type="text/javascript">
        @Html.Raw("var existingPersons = " +  Json.Encode(this.Model.ExistingPersons) + ";" )
        @Html.Raw("var settlementInformation="  + Json.Encode(this.Model.SettlementInformation) + ";")

        $(function () {
            $("#personName").autocomplete({
                source: existingPersons
            });

            $("#settlementInformation").autocomplete({
                source: settlementInformation
            });
        });
    </script>
}
@节脚本{
@Html.Raw(“var existingPersons=“+Json.Encode(this.Model.existingPersons)+“;”)
@Html.Raw(“var settletementinformation=“+Json.Encode(this.Model.settletementinformation)+“;”)
$(函数(){
$(“#人名”).autocomplete({
资料来源:现有人员
});
$(“#结算信息”)。自动完成({
资料来源:定居信息
});
});
}

在客户端,这将按预期显示在
元素中

<script type="text/javascript">
    var existingPersons = ["Person 1","Person 2"];
    var settlementInformation=["Settlement Type 1"];

    $(function () {
        $("#personName").autocomplete({
            source: existingPersons
        });

        $("#settlementInformation").autocomplete({
            source: settlementInformation
        });
    });
</script>

var existingPersons=[“个人1”、“个人2”];
var结算信息=[“结算类型1”];
$(函数(){
$(“#人名”).autocomplete({
资料来源:现有人员
});
$(“#结算信息”)。自动完成({
资料来源:定居信息
});
});
我没有在MVC的其他版本中尝试过这一点