Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在.Net核心布局视图中以编程方式包括Css和Js文件_Javascript_C#_Css_Asp.net Core - Fatal编程技术网

Javascript 在.Net核心布局视图中以编程方式包括Css和Js文件

Javascript 在.Net核心布局视图中以编程方式包括Css和Js文件,javascript,c#,css,asp.net-core,Javascript,C#,Css,Asp.net Core,当我们使用standart.net平台时,我们能够通过操作包含css和js文件,通过这样的代码包含控制器名称 string scriptSource = Url.Content(string.Format("~/js/page/{0}/{1}.js", controllerName, actionName)); if (System.IO.File.Exists(Server.MapPath(scriptSource))) { <script type="text/javascript

当我们使用standart.net平台时,我们能够通过操作包含css和js文件,通过这样的代码包含控制器名称

string scriptSource = Url.Content(string.Format("~/js/page/{0}/{1}.js", controllerName, actionName));
if (System.IO.File.Exists(Server.MapPath(scriptSource)))
{
  <script type="text/javascript" src="@scriptSource"></script>
}
string scriptSource=Url.Content(string.Format(“~/js/page/{0}/{1}.js”,controllerName,actionName));
如果(System.IO.File.Exists(Server.MapPath(scriptSource)))
{
}
我们将这些代码放在布局中,当您将js文件夹命名为控制器名称,将js文件命名为操作名称时,它就工作了


一段时间前,我将project升级到.Net Core(2.1),并向BaseController注入依赖关系以获取Server.MapPath值,但我无法从_布局视图访问BaseController或codebehind以获取Server.MapPath。。如果你们中有人能成功,请告诉我。

在ASP.NET核心中,我们不使用
Server.MapPath
。我们想改用
IHostingEnvironment

在文件
\u Layout.cshtml
中,您可以尝试:

@using Microsoft.AspNetCore.Hosting
@inject IHostingEnvironment environment
@{
    string path = string.Format("js/page/{0}/{1}.js", controllerName, actionName);
}
@if (System.IO.File.Exists(System.IO.Path.Combine(environment.WebRootPath, path)))
{
    <!-- file exist here... -->
}

为什么不在源代码中使用tilda呢?实际上,您不必在布局中使用server.mappath,因为当呈现页面时,它会自动解析。如果您尝试在.Net Core中使用
server.mappath
,则小狗将死亡。
public class HomeController : Controller
{
    private readonly IHostingEnvironment _environment;

    public HomeController(IHostingEnvironment environment)
    {
        _environment = environment;
    }

    public IActionResult Index()
    {
        string path = System.IO.Path.Combine(_environment.WebRootPath, "js/page/...");

        return View();
    }
}