拜托,我需要帮助解决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 { }
}
答案 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)
当您仅看到一个空白页并且除了空白页之外没有其他任何响应时,它可能是由许多原因引起的。这是我见过的两个: