首页 文章

在asp.net mvc中更改路由URL

提问于
浏览
1

我有登录控制器和注册ActionResult

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

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

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

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

    • Url部分参数:WebSiteName / Login / Reg /

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

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

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

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

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

  • 6

    这里我从URL中删除了最后两个传递参数

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

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

    步骤一

    像这样修改你的Routeconfig.cs

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

    第二步

    用户控制器

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

    第三步

    为UserController创建索引视图

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

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

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

相关问题