我是mvc core2.0的新手,请告诉我为什么我的路由不工作我的路由类
public static class ApplicationRoteProfiler
{
public static void Routeing(IRouteBuilder builder)
{
builder.MapRoute("route1", "", new
{
Controllers = "Department",
Action = "Add",
});
builder.MapRoute("route2", "Department/Add", new
{
Controllers = "Department",
Action = "Index"
});
}我在startup.config文件中注册了这个类文件
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
app.UseMvc();
app.UseMvcWithDefaultRoute();
app.UseMvc(routes =>
{
ApplicationRoteProfiler.Routeing(routes);
});
}当我以http://localhost:1588/Department/Add的身份点击我的服务器时,它应该重定向到部门/索引,但点击的是部门/添加
发布于 2018-04-19 06:33:36
它应该只是Controller而不是Controllers吗?
builder.MapRoute("route1", "", new { controller = "department", action = "index" });我的2分
app.UseMvcWithDefaultRoute()和app.UseMvc()。你只需要选择其中的一个。UseMvc的lamba函数中。我也不认为你需要专门为你的"route1“定制路由,因为它遵循标准的MVC路由约定。App.UseMvc(路由=> { //这些路由的顺序很重要!routes.MapRoute(名称:"route2",模板:“部门/添加”,默认值:新建{面积= "",控制器=“部门”,动作=“索引”});routes.MapRoute(名称:“默认”,模板:"{controller=home}/{action=index}/{id?}");}
Department控制器Add方法中使用return RedirectToAction("index");,这样只要命中了MVC路由,它就会重定向到/deparment/index,假设你有默认的MVC路由设置,要么使用我放在#2上的“默认”路由,要么使用UseMvcWithDefaultRoute()。这样,您就不需要创建仅用于重定向的自定义路由。公共类DepartmentController :控制器{公共索引(){ return IActionResult ();}公共IActionResult Add() { return RedirectToAction("index");} }
https://stackoverflow.com/questions/49904133
复制相似问题