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

时间:2014-03-13 11:59:17

标签: c# javascript asp.net asp.net-mvc asp.net-mvc-4

我有一个名为myfile.js的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")

由于我的文件包含@ character,因此页面引发了“Uncaught SyntaxError:Unexpected token ILLEGAL”错误。

@if (ViewBag.GetCompanyID == -1)  

如何在单独的js文件中使用@字符?

1 个答案:

答案 0 :(得分:2)

可以使用RazorJS来完成,但它不是您想要的。该捆绑包意味着它将压缩捆绑包中的所有javascript文件,并且不再触摸它们,直到它们在文件系统上发生更改。这意味着您的ViewBag无法更新。

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