【问题标题】:Adding razor views to NET Core Api将 razor 视图添加到 NET Core Api
【发布时间】:2019-10-16 13:33:24
【问题描述】:

我正在构建一个应用程序 .NET Core Api + Angular 应用程序,该应用程序需要向其用户发送电子邮件。使用 html 模板和一个丑陋的代码来替换这些文件中的内容(至少有 4 个 html 模板),该功能可以正常工作。现在我想把事情做得更好,我想使用剃刀视图作为我的“邮件模板”,我正在关注文章here

基本上,代码使用 3 个项目:剃须刀页面/标准库/Razor 类库,但在我的情况下,我只想在我的 api 项目中添加这些“cshtml”文件。所以我所做的是创建一个文件夹 Views 并在其中创建所有必需的剃须刀视图。之后,我发布了这些剃刀视图以测试此类项目是否了解它必须将文件夹和文件移动到最终目的地但没有任何反应。

我还在我的 StartUp 类中做了一些小改动,以告知 VS 这个项目也支持 MVC

ConfigureServices 方法:

   services.AddMvc(config => {
            var policy = new AuthorizationPolicyBuilder()
                .RequireAuthenticatedUser()
                .Build();
            config.Filters.Add(new AuthorizeFilter(policy));
        });

配置方法:

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

在这些改变之后,什么都没有发生。缺什么? 更新 1:我发现了这个关于 razor pages 的有用链接,据我所知,Razor 文件是在构建和发布时编译的,没有办法检查 razor 文件是否正确复制到输出文件夹。

【问题讨论】:

  • 如果您不以纯文本形式发布代码,则搜索引擎将无法对其进行索引,这与网站的目的不符..

标签: c# asp.net-mvc asp.net-core razor visual-studio-2017


【解决方案1】:

试试这个启动类

public class Startup

{   public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services){
        services.AddMvc(config => {
        var policy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .Build();
        config.Filters.Add(new AuthorizeFilter(policy));
       });
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseStaticFiles(); //this middleware also should be added to the pipeline if your template has images,css etc.
        app.UseMvcWithDefaultRoute();  
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 2018-09-24
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    相关资源
    最近更新 更多