当前位置:  开发笔记 > 编程语言 > 正文

什么是MVC 6中@ Scripts.Render的替代品

如何解决《什么是MVC6中@Scripts.Render的替代品》经验,为你挑选了1个好方法。

我试图在我的MVC 6上运行一些d3js并且正在查看这个示例https://github.com/DustinEwers/D3-DotNetMVC-Demos/blob/master/D3Demos/Views/TagDemos/BasicBarChart.cshtml它使用

@Scripts.Render("~/bundles/d3")
@section Scripts{

但如果我这样做,我得到

当前上下文中不存在"脚本"这个名称

那么在MVC 6中有一种新的方法吗?



1> Shyju..:

在ASP.NET 5中,没有这样的Scripts.Render方法.要呈现脚本,您可以使用环境标记帮助程序.

您不必使用环境标记帮助程序.您可以直接将脚本标记放在布局文件中.但环境助手允许我们根据环境有条件地渲染脚本.(Minified-Bundled version vs All Un minified version)

这是语法,您可以在Layout文件中包含它.


    
    


                
    

假设您d3.js and d3.min.js~/js目录中存在脚本文件.

你还需要确保在UseStaticFiles()方法内部调用了Configure()方法(在Startup.cs中)

public void Configure(IApplicationBuilder app, IHostingEnvironment env,  
                                                             ILoggerFactory loggerFactory)
{
     //Other configuration goes here
     app.UseStaticFiles();  // This enables static file serving from the app.
     app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
}

UseStaticFiles() 扩展方法启用静态文件服务,包括js文件,css文件等.

在开发模式下运行应用程序时,它将在环境中呈现脚本标记"Development",当您在Staging或Production中运行它时,它将在"Staging,Production"环境下呈现脚本标记.

您可以通过右键单击项目来更改环境值,然后选择properties->Debug并指定环境变量的值Hosting:Environment

您可以看到我已在staging/Production环境中包含缩小版本的js文件.这不是必需的,而是首选方法,因为它可以节省一些带宽.(你可以把非缩小版本放在那里,而不是缩小,如果你真的想这样做.).如果您有一个捆绑的文件,您也可以在此使用它而不是单个文件.

如果您还没有缩小版本,可以通过运行gulp任务来生成缩小版本.(这包含在gulp.js新Web应用程序模板中的默认文件中).您只需打开任务运行器并运行缩小任务即可.

在此输入图像描述

如果您不希望每次都手动运行,您可以选择Bindings -> Before build这样,每次构建项目时,这将自动运行该特定的gulp任务.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有