asp.net-mvc - 将MVC添加到VS2015中的空ASP.NET 5项目: Empty 500 Responses

标签 asp.net-mvc visual-studio-2015 asp.net-core

我正在尝试在 Visual Studio 2015 中创建一个最小的 MVC6(我猜现在是 MVC Core?)项目,方法是从一个空项目开始并添加 MVC 位 - 我不需要很多额外的废话添加为“Web App”项目的一部分,我想边做边学,所以我尝试以下方法。不幸的是,对此 Web 应用程序的每个请求都会导致 500 内部错误响应,且没有进一步的详细信息。

  1. 创建一个新的 ASP.NET 5 空 Web 项目。这从“Hello World!”开始。对所有请求的响应
  2. 将以下行添加到project.json:
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
  • 修改Startup.cs中的代码如下:
  • public class Startup
           {
                public void ConfigureServices(IServiceCollection services)
                {
                    services.AddMvc(); // ADDED
                }
    
                // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
                public void Configure(IApplicationBuilder app)
                {
                    app.UseIISPlatformHandler();
    
        // REMOVED
        //            app.Run(async (context) =>
        //            {
        //                await context.Response.WriteAsync("Hello World!");
        //            });
    
                    app.UseMvc(config =>
                    {
                        config.MapRoute("Default", "{controller}/{action}/{id?}",
                            new { controller = "Home", action = "Index" });
                    });
                }
    
                // Entry point for the application.
                public static void Main(string[] args) => WebApplication.Run<Startup>(args);
            }
    
  • 添加包含 HomeController.cs 的 Controllers 文件夹:
  • public class HomeController : Controller
    {
        // GET: /<controller>/
        public IActionResult Index()
        {
            return View();
        }
    }
    
  • 添加一个 Views 文件夹,并将 _Viewstart.cshtml 放在根目录中:
  • @{
        Layout = "_Layout";
    }
    
  • 使用 _Layout.cshtml 添加 View /共享文件夹(我的实际应用程序是 Angular2 应用程序,因此具有比这更多的静态内容)
  • <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>My Test App</title>
    </head>
    <body>
        <div>
            Testing
        </div>
    </body>
    </html>
    
  • 添加 Views/Home/Index.cshtml 内容:
  • @{
        ViewBag.Title = "My Test App";
    }
    <div>Testing</div>
    

    但是当我运行此命令时,每个请求都会收到 500 内部错误响应,但没有任何错误消息或内容可以表明可能出了什么问题?有什么想法这里可能有什么问题吗?

    最佳答案

    好吧,我对此有自己的答案。事实上,我在对这个问题进行最后的修改时发现了它,所以我想如果其他人有类似的问题,我会发布它们。看来,如果您忘记在 _Layout.cshtml 中放置 @RenderBody 调用,那么您会收到 500 内部错误,并且没有任何明显的信息告诉您出了什么问题!修复方法只是将 @RenderBody() 添加到 _Layout.cshtml 中:

    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>My Test App</title>
    </head>
    <body>
        <div>
            @RenderBody()
        </div>
    </body>
    </html>
    

    关于asp.net-mvc - 将MVC添加到VS2015中的空ASP.NET 5项目: Empty 500 Responses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328361/

    相关文章:

    css - Visual Studio 2013 不更新缩小的 bootstrap.css

    tfs - 在 VS 2015 中搜索文件名或 DLL - 源代码管理资源管理器

    reactjs - 类型错误 : Cannot read property 'ts' of undefined

    c# - 在 Swagger 中隐藏参数的最佳方法

    jquery - 将 jQuery 数据表中一行的所有输入值传递到 asp.net mvc

    c# - 在模态弹出窗口中显示局部 View

    c# - Ninject 和 ASP.NET Web API

    c# - VS2015 C# UWP 构建错误、共享项目和后台任务

    c# - VS 2015 动态菜单命令不像宣传的那样工作

    asp.net-core - 如何在asp.net core MVC RC2中检索facebook用户个人资料图片