C# 如何使用ASP.NET MVC注册JS?

C# 如何使用ASP.NET MVC注册JS?,c#,asp.net-mvc,controls,C#,Asp.net Mvc,Controls,我想建立一个MVC自定义控件 现在我有一个问题 我的控件有一个js文件和一个css文件 我只想要使用控件加载js和css的页面 如果我使用这个控件,js和css加载的次数会增加很多倍 我知道我们可以在web表单中这样做: RegisterClientScriptResourcetypeof..,Assembly.MyScript.js 但是我如何在mvc中做到这一点 有两个问题: 1.我想在我的项目中创建一个控件,就像这样@html.mycontrol,使用它的人不关心其他人,也不关心js或cs

我想建立一个MVC自定义控件

现在我有一个问题

我的控件有一个js文件和一个css文件

我只想要使用控件加载js和css的页面

如果我使用这个控件,js和css加载的次数会增加很多倍

我知道我们可以在web表单中这样做: RegisterClientScriptResourcetypeof..,Assembly.MyScript.js

但是我如何在mvc中做到这一点

有两个问题:

1.我想在我的项目中创建一个控件,就像这样@html.mycontrol,使用它的人不关心其他人,也不关心js或css是否加载


2.此控件可能在其他项目中使用。因此,我不希望其他项目知道如何获得控件js或cssi在类库中编写此控件

您通过MVC中的BundleConfig控制您的Include

通常,所有捆绑包都加载到_Layout.cshtml文档中,如下所示:

@Scripts.Render("~/bundles/jquery")
@Styles.Render("~/Content/css")
            bundles.Add(new ScriptBundle("~/bundles/nameOfBundle").Include(
                    "~/pathToFile"));
您可以在BundleConfig.cs文件中创建自定义捆绑包,如下所示:

@Scripts.Render("~/bundles/jquery")
@Styles.Render("~/Content/css")
            bundles.Add(new ScriptBundle("~/bundles/nameOfBundle").Include(
                    "~/pathToFile"));
然后,您只需将包加载到需要的文件中,而不是Layout.cshtml文件中

例如:


很抱歉这么晚才回答。我的问题如下:1.我想在我的项目中创建一个控件,就像这样@html.mycontrol,使用它的人不关心其他人,也不关心js或css是否加载2.这个控件可能会在其他项目中使用。所以我不想让其他项目知道如何获取控件js或cssffirst:我想使用像这样的razor代码@html.mycontrol,当我使用代码时,js和css自动加载,不需要任何其他代码。第二:我希望这个控件写在类库中,并且可以在任何地方使用。首先,当我使用@html.mycontrol时,css和js只加载一次,当我多次使用这个@html.mycontrol时,共享css和js只加载一次。第二个问题如何在任何其他项目中使用此控件我很抱歉这么晚才回答。我的问题如下:1.我想在我的项目中创建一个控件,就像这样@html.mycontrol,使用它的人不关心其他人不关心js或css是否加载2.此控件可能用于其他项目。因此,我不想让其他项目知道如何获取控件js或cssI认为您可能在引用自定义html帮助程序。您可以阅读这篇文章,了解以下内容: