.net core 的内容处处可见,刷爆全球各大社区,所以,老周相信各位大伙伴已经看得不少了,故而,老周不考虑一个个知识点地去写,那样会成为年度最大的屁话,何况官方文档也很详尽。老周主要扯一下大伙伴们在入门的时候可能会疑惑的内容。

asp.net core 可以在一个项目中混合使用 web pages 和 mvc ,这是老周最希望的,因为这样会变得更灵活。web pages 类似于我们过去的 web 开发方式,以页面为单位,此模型侧重于功能划分。而 mvc 侧重于数据,有什么样的数据模型就有什么样的 controller,有什么样的 controller 就会对应什么样的 action ,而 action 又会有对应的 ui,即 view。所以说 mvc 是以数据为核心的。

populatevalues():作为一种指定参数的方式存在,您的视图查找将根据每个请求而变化.由于您没有填充它,视图引擎使用先前请求中的缓存值.

public class themeviewlocationexpander : iviewlocationexpander
  {
    public ienumerable<string> expandviewlocations(viewlocationexpandercontext context, ienumerable<string> viewlocations)
    {
      string theme = context.values["theme"];
      if (string.isnullorwhitespace(theme))
      {
        theme = "default";
      }
      string[] newlocation = { $"views/{theme}/{{1}}/{{0}}.cshtml"};
      return viewlocations.union(newlocation);
    }

    public void populatevalues(viewlocationexpandercontext context)
    {
      context.values["theme"] = context.actioncontext.httpcontext.request.query["theme"].tostring();
    }
  }
//配置模版视图路径
      services.configure<razorviewengineoptions>(options =>
      {
        options.viewlocationexpanders.add(new themeviewlocationexpander());
      });

到此这篇关于asp.net中core自定义view查找位置的实例代码的文章就介绍到这了,更多相关core自定义view查找位置内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!