程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

ASP.NET Core MVC:在 Razor 页面中加载文件

发布于2023-03-12 22:29     阅读(1224)     评论(0)     点赞(30)     收藏(2)


我正在尝试使条款和条件页面形成我的网站。但是,我正在尝试以用户喜欢的语言(如 Microsoft)提供条款和条件页面(他们的 URL 中有这个 en-US 前缀)。

我设法在我的wwwroot喜欢terms.en-US.html等中创建了单独的 HTML 文件夹terms.fr-CA

我还创建了一个名为的控制器FilesController,它看起来像这样:

public class FilesController : Controller
{
    [Route("Files/{language}/Terms")]
    public IActionResult Terms(string language)
    {
        ViewData["lang"] = language;
        return View();
    }
} 

这是Terms.cshtml文件(到目前为止):

@{
   Layout= "_HomeLayout";
}
@Html.Raw(System.IO.File.ReadAllText(System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(),"../files/documents/terms_and_conditions/" + @ViewData["lang"] + ".html")));

但显然它不起作用。我该如何管理?

PS:我试图将html添加到cshtml文件中的唯一原因是为了受益于布局功能。否则我会像这样直接在控制器中返回 html 文件:

public IActionResult Terms()
{
    return File("~/files/documents/terms_and_conditions/tr-TR.html", "text/html");
}

解决方案


我用来File.ReadAllText直接读取路径并且它工作正常。

下面是我的测试代码:

看法:

@Html.Raw(File.ReadAllText("./wwwroot/files/"+@ViewData["lang"]+".html"))

控制器:

public IActionResult Index(string language)
{
      ViewData["lang"] = language;
      return View();
}

在此处输入图像描述

测试结果:

在此处输入图像描述

这个结果是你想要的吗?




所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.qianduanheidong.com/blog/article/498790/347bab2aeb00b3b76ad8/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

30 0
收藏该文
已收藏

评论内容:(最多支持255个字符)