MVC重新接受Key

时间:2013-06-11 19:01:34

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

从事MVC项目,我在重新路由我的网址时遇到了困难。 我现在拥有的是

http://dev.mywebsite.com/s/index?Key=abc123

然后运行索引操作并按照我的意愿完成 我希望能够输入

http://dev.mywebsite.com/s/abc123

并像往常一样运行索引操作

我目前有

        routes.MapRoute(null, "s/index/{id}", new
        {
            controller = "Home",
            action = "Index",
            id = UrlParameter.Optional
        }
             );

但我有点担心从哪里开始。任何帮助将不胜感激。 感谢

编辑:我的完整routeconfig类

routes.IgnoreRoute( “{}资源个.axd / {*} PATHINFO”);             routes.IgnoreRoute( “站点/ {*} PATHINFO”);

        routes.MapRoute(null, "s/index/{key}", new
        {
            controller = "S",
            action = "Index",
            key = UrlParameter.Optional
        }
        );

        routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}",
            new { controller = "Site", action = "Index", id = UrlParameter.Optional },
            new[] { "Custom.Web.Controllers" }
        );
    }

在我的控制器中我将actionresult索引作为

    public ActionResult Index(string Key)
    {
        return Redirect(workflow.RetrieveURL(Key));
    }

1 个答案:

答案 0 :(得分:1)

因此,在我们所有评论之后,解决方案是:

routes.MapRoute(null, "s/{Key}",
new {
  controller = "Home",
  action = "Index",
  Key = UrlParameter.Optional
});

将此规则放在所有其他规则之前,以优先考虑