asp.net核心mvc显示空页

时间:2016-12-16 00:23:33

标签: asp.net-core-mvc

拜托,我需要帮助解决asp.net核心mvc应用程序的问题。

该应用仅显示空白主页 - 根本没有内容,包括html标记。即使直接在浏览器上键入url也不会调用控制器,也不会显示错误。

我已经多次创建了新的应用程序,结果相同。另外,我在Startup类的Configure方法中添加了以下语句,但没有用。

app.UseDefaultFiles();
app.UseStaticFiles();
app.UseIdentity();

任何解决这个谜团的指南都将受到高度赞赏。

感谢。

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) {
        loggerFactory.AddConsole(Configuration.GetSection("Logging"));
        loggerFactory.AddDebug();

        //add NLog to ASP.NET Core
        //loggerFactory.AddNLog();

        ////add NLog.Web
        //app.AddNLogWeb();

        //needed for non-NETSTANDARD platforms: configure nlog.config in your project root
        //env.ConfigureNLog("nlog.config");

        if (env.IsDevelopment()) {
            app.UseDeveloperExceptionPage();
            app.UseDatabaseErrorPage();
            app.UseBrowserLink();
        } else {
            app.UseExceptionHandler("/Home/Error");
        }

        app.UseDefaultFiles();
        app.UseStaticFiles();
        app.UseIdentity();

        // Add external authentication middleware below. To configure them please see http://go.microsoft.com/fwlink/?LinkID=532715
        app.UseMvcWithDefaultRoute();
        //app.UseMvc(routes => {
        //    routes.MapRoute(
        //        name: "default",
        //        template: "{controller=Home}/{action=Index}/{id?}");
        //});

        // For more details on creating database during deployment see http://go.microsoft.com/fwlink/?LinkID=615859
        try {
            using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>()
                .CreateScope()) {
                serviceScope.ServiceProvider.GetService<ChurBaseContext>()
                     .Database.Migrate();

                var userManager = serviceScope.ServiceProvider.GetService<UserManager<ChurchMember>>();
                var roleManager = serviceScope.ServiceProvider.GetService<RoleManager<IdentityRole>>();

                serviceScope.ServiceProvider.GetService<ChurBaseContext>().EnsureSeedData(userManager, roleManager);
            }
        } catch { }
    }

5 个答案:

答案 0 :(得分:0)

app.UseMvcWithDefaultRoute(); //in startup.cs

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

答案 1 :(得分:0)

这可能是因为您没有将MVC用于执行管道。

在启动类的Configure方法中,您需要添加如下 -

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            ......

            app.UseStaticFiles();

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

或像这样添加UseMvcWithDefaultRoute -

app.UseMvcWithDefaultRoute();

这基本上将MVC添加到IApplicationBuilder请求执行管道。

看看这是否有帮助。

答案 2 :(得分:0)

当我在Usemvc()上方的Startup.cs中设置了一个Use()扩展名时没有调用“await next();”时出现这种情况。在功能结束时。

app.Use(async (context, next) =>
{
    // some custom magic

    await next();// don't forget this
});

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

答案 3 :(得分:0)

您可以尝试添加:

app.UseStatusCodePages();

app.UseStatusCodePagesWithReExecute("/error/{0}");

有关后者的信息,您可以看到: [When using UseStatusCodePagesWithReExecute, statuscode is not sent to browser

答案 4 :(得分:0)

当您仅看到一个空白页并且除了空白页之外没有其他任何响应时,它可能是由许多原因引起的。这是我见过的两个:

  1. 损坏的web.config
  2. 与IIS冲突的web.config。当特定部分锁定在IIS配置中时,可能会发生这种情况。