我有一个名为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文件中使用@
字符?
答案 0 :(得分:2)
可以使用RazorJS来完成,但它不是您想要的。该捆绑包意味着它将压缩捆绑包中的所有javascript文件,并且不再触摸它们,直到它们在文件系统上发生更改。这意味着您的ViewBag无法更新。
您应该只在单独的javascript文件中包含库,并使用正确的参数在视图中添加函数的特定调用。您应该将视图中的ViewBag.GetCompanyID
作为fnGetFilterVals
函数的参数发送。