Asp.Net Mvc4:如何在js文件中使用@字符

本文关键字:文件 字符 js Mvc4 Net Asp | 更新日期: 2023-09-27 17:50:07

我有一个js文件名为:myfile.js
它的内容看起来像:

function fnGetFilterVals(){
    var f = '?';
    f += '&fltInsertDate=' + $('#fltCreateDate').val();
    f += '&fltStatusID=' + $('#fltStatus').val();
    @if (ViewBag.GetCompanyID == -1)
    {
        <text>f += '&fltCompanyIDs=' + $('#fltCompany').val();</text>
    }
    return f;
}

我在BundleConfig.cs中创建了一个包:

bundles.Add(new ScriptBundle("~/bundles/myfile").Include("~/static/asset/myfile.js"));

之后,我包含它来查看"@section Scripts":

@Scripts.Render("~/bundles/myfile")

由于我的文件包含@字符,页面引发"Uncaught SyntaxError: Unexpected token ILLEGAL"错误。

@if (ViewBag.GetCompanyID == -1)  

我如何在一个分离的js文件中使用@字符?

Asp.Net Mvc4:如何在js文件中使用@字符

可以用RazorJS来做,但这可能不是你想要的。bundle意味着它将把你所有的javascript文件压缩到一个bundle中,并且在它们在文件系统上被修改之前不会再碰它们。这意味着你的ViewBag不会被更新。

你应该在单独的javascript文件中只有库,并在视图中添加特定的函数调用,并使用正确的参数。您应该将ViewBag.GetCompanyID作为fnGetFilterVals函数的参数从视图发送。