Asp.net core mvc 如何将ASP.NET核心MVC引入现有ASP.NET空白项目?

Asp.net core mvc 如何将ASP.NET核心MVC引入现有ASP.NET空白项目?,asp.net-core-mvc,Asp.net Core Mvc,我有一个ASP.NET核心空白项目,通过它来服务静态文件非常有效。现在我想向它添加MVC函数。但是,在添加“控制器”文件夹后,添加控制器类: public class HelloWorldController : Controller { // // GET: /HelloWorld/Welcome/ public string Welcome() { return "This is the Welcome action method..."

我有一个ASP.NET核心空白项目,通过它来服务静态文件非常有效。现在我想向它添加MVC函数。但是,在添加“控制器”文件夹后,添加控制器类:

public class HelloWorldController : Controller
{
    // 
    // GET: /HelloWorld/Welcome/ 

    public string Welcome()
    {
        return "This is the Welcome action method...";
    }
}
StartUp.cs类似于:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseMvc();
        app.UseStaticFiles();
    }
建筑商是这样的:

return WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
返回WebHost.CreateDefaultBuilder(args)
.UseStartup();
在这一切之后,我仍然无法访问“”


我遗漏了什么?

您没有指定默认路由,或者任何类型的路由。最快的修复方法是将
app.UseMvc()
更改为
app.UseMvcWithDefaultRoute()
。或者,可以添加属性路由:

[Route("[controller]")]
public class HelloWorldController : Controller
{

    [HttpGet("Welcome")]
    public string Welcome()
    {
        return "This is the Welcome action method...";
    }
}

您没有指定默认路由,也没有指定任何类型的路由。最快的修复方法是将
app.UseMvc()
更改为
app.UseMvcWithDefaultRoute()
。或者,可以添加属性路由:

[Route("[controller]")]
public class HelloWorldController : Controller
{

    [HttpGet("Welcome")]
    public string Welcome()
    {
        return "This is the Welcome action method...";
    }
}

StackOverflow可能是一个困难的地方,尤其是对于新手。不要把它当成个人问题,有些人只是从来没有学会如何礼貌礼貌。我对你投了赞成票,我个人不会对这个问题投反对票,但在我看来,仅仅因为别人投了反对票而投反对票也是同样糟糕的。我发现很少有人真正理解什么是赞成票或反对票,并且几乎不加区别地使用它们。对于一个问题,向上投票意味着它是研究性的、清晰的和有用的。否决票显然意味着相反的结果:缺乏研究,不清楚,没有用处。我可以看到“缺乏研究”是一个动机,因为这是技术上的记录。然而,文档中也很容易漏掉它。@Chris Pratt我认为这样做是为了更快地得到答案,节省你的研究时间,这就是重点,不是吗?对于这个领域的新手来说,答案总是很难找到,但对于有经验的人来说,答案显然很难找到。我们能在5分钟的研究之后问这个问题吗?如果系统在您投票失败时询问原因,然后其他人可以查看,并且失败的投票人会因为错误的投票失败而失去分数,这也不会更好。@SRQ编码员感谢您的好意。常见问题的答案库也是如此,所以是的,它可以帮助您“更快”获得答案如果你在研究中发现了这些现有的答案。然而,如果你的问题没有涵盖在内,那么你就应该做适当的研究,并在来这里提问之前尝试一个解决方案。堆栈溢出不是大脑的替代品。堆栈溢出可能是一个困难的地方,尤其是对于新手。不要把它当成个人问题,有些人只是从来没有学会如何礼貌礼貌。我对你投了赞成票,我个人不会对这个问题投反对票,但在我看来,仅仅因为别人投了反对票而投反对票也是同样糟糕的。我发现很少有人真正理解什么是赞成票或反对票,并且几乎不加区别地使用它们。对于一个问题,向上投票意味着它是研究性的、清晰的和有用的。否决票显然意味着相反的结果:缺乏研究,不清楚,没有用处。我可以看到“缺乏研究”是一个动机,因为这是技术上的记录。然而,文档中也很容易漏掉它。@Chris Pratt我认为这样做是为了更快地得到答案,节省你的研究时间,这就是重点,不是吗?对于这个领域的新手来说,答案总是很难找到,但对于有经验的人来说,答案显然很难找到。我们能在5分钟的研究之后问这个问题吗?如果系统在您投票失败时询问原因,然后其他人可以查看,并且失败的投票人会因为错误的投票失败而失去分数,这也不会更好。@SRQ编码员感谢您的好意。常见问题的答案库也是如此,所以是的,它可以帮助您“更快”获得答案如果你在研究中发现了这些现有的答案。然而,如果你的问题没有涵盖在内,那么你就应该做适当的研究,并在来这里提问之前尝试一个解决方案。堆栈溢出不是大脑的替代品。只是一个小问题,而不是你问题的答案(Chris Pratt已经给出):通常在调用
UseMvc()
之前调用
UseStaticFiles()
。顺序也与路由有关。只是一个小问题,而不是您问题的答案(Chris Pratt已经给出):通常在调用
UseMvc()
之前调用
UseStaticFiles()
。顺序也与路线有关。