在asp.net mvc中更改路由URL

use*_*063 1 c# url asp.net-mvc asp.net-mvc-routing

我有登录控制器和注册ActionResult

   public ActionResult Register()
        {
            return View();
        }
Run Code Online (Sandbox Code Playgroud)

如果我发布任何数据到注册actionresult网址如下所示,

WebSiteName/Login/Register
Run Code Online (Sandbox Code Playgroud)

我想将路由网址更改为WebSiteName/Login/Reg = Id?

所以我尝试下面,但我无法改变路线网址.

   routes.MapRoute(
         name: "something",
         url: "Login/Reg=Id?",
         defaults: new
         {
             controller = "Login",
             action = "Register",
             id = id = UrlParameter.Optional
         }
     );
Run Code Online (Sandbox Code Playgroud)

那么如何在asp.net mvc中更改url?

任何帮助将不胜感激.

谢谢.

And*_*rei 6

您正在尝试使用不正确的url参数形式.你有的选择是:

  1. 网址部分参数:WebSiteName/Login/Reg/{id}

    为此,您可以使用以下配置

    routes.MapRoute(
         name: "something",
         url: "Login/Reg/{id}",
         defaults: new
         {
             controller = "Login",
             action = "Register",
             id = UrlParameter.Optional
         }
     );
    
    Run Code Online (Sandbox Code Playgroud)
  2. 查询字符串参数:WebSiteName/Login/Reg?id = {id}

    在这里,您根本不需要在config中指定参数:

    routes.MapRoute(
         name: "something",
         url: "Login/Reg",
         defaults: new
         {
             controller = "Login",
             action = "Register"
         }
     );
    
    Run Code Online (Sandbox Code Playgroud)

当然,在这两种情况下,假设您的操作Register都有参数ID.