首页 > 解决方案 > 在 Mvc 中更改 Route Config 中的 url

问题描述

我想更改函数的地址(通过 RegisterRoutes)。我定义了两个 routes.MapRoute 但没有任何工作。我检查了许多示例并将我的代码与它们匹配,但问题仍然存在。真实地址为:http://localhost:3127/account/register/3

我希望将我的地址更改为以下地址:http://localhost:3127/Reg

是否应该在函数顶部为此使用 [Route("Reg")]?是否需要重定向?我需要 web.config 设置来执行此操作吗?

我的行动是:

[AllowAnonymous]
    [Route("Reg")]
    public virtual ActionResult Register()
    {
        return View();
    }

我在注册路由中的配置:

   routes.MapRoute(
         name: "Register",
         url: "Reg",
         defaults: new { controller = "Account", action = "Register" },
         namespaces: new[] { "WebSite.Controllers" }
     );
        routes.MapRoute(
          name: "Account",
          url: "Account/Reg",
         defaults: new { controller = "Account", action = "Register" },
         namespaces: new[] { "WebSite.Controllers" });

路由配置

调用url地址错误

标签: asp.net-mvcurlroutesasp.net-mvc-routingrouteconfig

解决方案


public class RegisterController : Controller
{
    public ActionResult Account()
    {
        return View();
    }
}
routes.MapRoute(
    name: "Register",
    url: "Reg/{id}",
    defaults: new { controller = "Register", action = "Account", id = UrlParameter.Optional }
);
routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

推荐阅读