1

我想为我的网站提供以下特定的 URL 路由

http://www.MyWebsite?Region=US&Area=South

基于传递的 Region 和 Area 查询字符串参数,我想重定向到特定的控制器操作。

问题:

  1. Url 路由应该是什么?
  2. 创建一个重定向到特定操作的通用控制器操作是否可以在这里工作?

任何帮助将不胜感激!

谢谢

4

1 回答 1

0

如果您想直接从根处执行查询字符串,那么您需要以这种方式在全局中映射路由。在您的操作中,您可以访问上下文并从中获取查询字符串。下面是我做 twitter 风格用户名的例子,但想法是一样的。

routes.MapRoute("UserSettings",
          "{username}/settings",
          new { controller = "Home", action = "Settings", username = "" },
          new { username = new NotNullOrEmptyConstraint() }
        );

公共类 NotNullOrEmptyConstraint : IRouteConstraint {

    public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
    {
        try
        {
            return !String.IsNullOrEmpty(values["username"].ToString());
        }
        catch (Exception)
        {
            return false;
        }
    }
}


 public ActionResult Settings(string username){
 }
于 2012-10-04T19:34:34.387 回答