禁用查询字符串并仅使用带/的路径

时间:2011-06-30 06:05:19

标签: asp.net-mvc asp.net-mvc-2 asp.net-mvc-routing

我正在使用表单,然后将操作重定向到另一个页面。问题是操作重定向功能始终使用查询字符串重定向,而不是完整路径。 最终网址是: 本地主机/获取描述= “DDD” &放大器;α-ID = 555 虽然我希望它是: 本地主机/获取/ DDD / 222

这是我的代码: 我的路线:

  routes.MapRoute(
            "Create", // Route name
            "{controller}/{action}", // URL with parameters
            new
            {
              controller = "Home"
            } // Parameter defaults
           );

  routes.MapRoute(
                  "Get", // Route name
                  "{controller}/{action}/{Description}/{id}/", // URL with parameters
                  new
                  {
                    controller = "Home",
                    action = "Get",
                    Description = UrlParameter.Optional,
                    id = UrlParameter.Optional
                  } // Parameter defaults
                 );`

表单填写说明和id并触发创建操作,我将重定向到get操作:

    public ActionResult Create(string desc,string id)
    {
      System.Web.Routing.RouteValueDictionary route = new System.Web.Routing.RouteValueDictionary(new { Description = desc, Id = id });

      return RedirectToAction("Get",route);
    }

最后触发了get动作。

    public ActionResult Get(String Description,String Id)
    { return View() }

请帮助..

1 个答案:

答案 0 :(得分:0)

您可能需要使用RouteTable.Routes.GetVirtualPath生成虚拟路径。请参考this article