我想通了,我自己的答案。我决定在Controller中创建自己的相对根路径变量,然后将值返回到View中。我在那个时候只需要使用Razor Markup插入变量并完成它!
我的环境:
控制器:
IHostingEnvironment
服务有两个特别感兴趣的特性:ContentRootPath
和WebRootPath
。对于我而言,我将使用ContentRootPath
,因为我想访问换句话说wwwroot
private readonly IHostingEnvironment _hostingEnvironment;
public HomeController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
确保将命名空间添加到文件的相对根路径或!
using Microsoft.AspNetCore.Hosting;
我完成后,我需要的控制器内奠定了基础工作,在同一文件中,我只想要一个特定的页面,利用我的工作。为了简单起见,它将在示例代码中表示为Index
。
public IActionResult Index()
{
ViewBag.wwwRootPath = _hostingEnvironment.ContentRootPath;
return View();
}
查看:
好像在运行时或构建微软的.NET Core仅转换~/
到相对根目录,如果它是一个元素中的src
属性中。所以那些正在使用第三方库或者需要指定非文件调用方式的情况下,这个解决方案就足够了,直到它们添加了可扩展性。
我将使用问题中的示例作为解决方案的示例。因此,如上所述,此代码在应用程序中不起作用。
<img data-original="~/folder/file.png" />
解决办法:
<img data-original="@ViewBag.wwwRootPath/folder/file.png" />
注:这也对JavaScript和CSS的伟大工程!只需将ViewBag.wwwRootPath
放在您想要的文档中以保持一致性!