Я создал пустое основное веб-приложение ASP.NET и добавил службу и конфигурацию MVC в файл «Startup.cs»
И чтобы настроить мой вид при запуске «Пользователи / Создать», я изменил «applicationUrl» в файле launchSettings.json следующим образом:
"applicationUrl": "http://localhost:61541/Users/Create",
Первый выпуск
Я получил ожидаемый URL при запуске visual studio "http://localhost:61541/Users/Create", но он показывает мне представление" Главная / индекс "(маршрут по умолчанию)
Решение
Теперь я понял, что не должен менять значение «applicationUrl», так как MVC считает его основным корнем. Вот почему я получил следующее поведение
Основной выпуск
Когда я решил изменить "applicationUrl" обратно на "http://localhost:61541" и перейти к" http://localhost:61541/Users/Create",, я снова получил представление "Home / index" (маршрут по умолчанию)
Также я получил следующее поведение:
Примечание. После развертывания решения в 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();
}
}