在asp.net mvc中更改路由URL

时间:2014-01-24 16:38:27

标签: c# asp.net-mvc url asp.net-mvc-routing

我有登录控制器和注册ActionResult

   public ActionResult Register()
        {
            return View();
        }

如果我发布任何数据到注册actionresult url好像如下,

WebSiteName/Login/Register

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

所以我尝试了以下但是我无法改变路线网址。

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

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

任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:6)

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

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

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

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

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

    routes.MapRoute(
         name: "something",
         url: "Login/Reg",
         defaults: new
         {
             controller = "Login",
             action = "Register"
         }
     );
    
  3. 当然,在这两种情况下,假设您的操作Register都有参数ID。

答案 1 :(得分:0)

我在这里删除了网址中的最后两个传递参数

这是我的网址链接 - > http://localhost:12345/User?value=98998?id=2

我想从网址链接中删除value和id参数

步骤-I

像这样修改你的Routeconfig.cs

routes.MapRoute(
   "User",
   "User/{value}/{id}",
   new { controller = "User", action = "Index", value= UrlParameter.Optional, id = UrlParameter.Optional }
);

步骤-II

用户控制器

public ActionResult Index(string value, int id)
{
    // write Your logic here 
    return view();
}

步骤-III

为UserController创建索引视图

@Html.ActionLink("LinkName", "Index", "User", new {value = "98998", id = "2"},null)

最后我们得到了一个结果:http://localhost:12345/User/98998/2

同样,我们可以从网址中删除多个参数