将.cshtml文件添加到MVC中的Script Bundle

时间:2014-01-30 09:38:15

标签: asp.net-mvc razor bundle

我有一个cshtml文件,其顶部有以下几行:

@{
    Layout = null;
    Response.ContentType = "text/javascript";
}

直接从脚本标记中的_Layout.cshtml引用时,它可以正常工作。但是我试图将它添加到一个包中,我知道优化最近使它成为可能,如果这是真的,有人可以告诉我如何吗?

所以这很好用

@Html.JsInclude(jslocation + "ui.data.cshtml?"); // normal script tag

虽然这些错误:当遇到@时非法字符,显然文件永远不会被执行。

bundles.Add(new ScriptBundle("~/scripts/uidata").Include(JsFolder + "ui.data.cshtml"));

@Scripts.Render("~/scripts/uidata");

1 个答案:

答案 0 :(得分:0)

我不知道@Html.JsInclude正在做什么,但通常asp.net MVC引擎不会直接渲染视图。相反,它要求你调用一个ActionMethod然后返回一个视图。

因此,即使您尝试使用带有视图网址的脚本标记加载视图,它通常也不起作用,或者您已允许直接访问视图文件夹并将.cshtml mime类型添加到发送的文件中请求。将发送文件的所有内容,其中包括所有内容,即使它在@{}

同样,所有这些都没有使用包含视图内容的包,因为包是一个缩小的副本并且缓存所以如果你想要它被缓存为什么不发送一个脚本文件。

您可能正在尝试动态注入脚本。在这种情况下,控制器直接通过适当的content-type header

发送脚本