【发布时间】:2018-12-08 23:56:02
【问题描述】:
我创建了一个空的 ASP.NET Core Web 应用程序,并将 MVC 服务和配置添加到“Startup.cs”文件中
为了设置我的启动视图“用户/创建”,我已将 launchSettings.json 文件中的“applicationUrl”更改如下
"applicationUrl": "http://localhost:61541/Users/Create",
第一期
我在运行视觉工作室“http://localhost:61541/Users/Create”时得到了预期的 URL,但它显示了“主页/索引”视图(默认路由)
解决方案
现在我意识到我不应该更改“applicationUrl”值,因为 MVC 认为它是基本根。这就是为什么我得到以下行为
- http://localhost:61541/Users/Create --> 返回默认值 路线“首页/索引”
- http://localhost:61541/Users/Create/Users/Create --> 返回 “用户/创建”
主要问题
当我决定将“applicationUrl”改回“http://localhost:61541”并导航到“http://localhost:61541/Users/Create”时,我再次获得了“Home/index”视图(默认路由)
我也有以下行为:
- http://localhost:61541/Users/Create --> 返回“主页/索引”
- http://localhost:61541/Users/Index --> 返回“用户/索引”
- http://localhost:61541/Users/Create/Users/Create --> 返回“用户/创建”
注意:将解决方案部署到 IIS 后,一切正常。但在 Visual Studio 中,我的行为仍然很奇怪
我的问题
我在问为什么 Visual Studio 中的路由(使用 IIS express)不能像以前那样工作?虽然我把“applicationUrl”改回原来的值了?!
这里是解决方案代码
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
然后我添加了两个控制器,每个控制器都有两个视图
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult Create()
{
return View();
}
}
public class UsersController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult Create()
{
return View();
}
}
【问题讨论】:
标签: c# visual-studio-2017 asp.net-core-mvc asp.net-mvc-routing asp.net-core-2.0