1

我希望能够处理通过某个控制器请求的任何 url。

foo.com/a
foo.com/abcd
foo.com/x1

对于 foo.com/a

我想用

UrlHandlerControllerProcess(string url)方法。

我应该如何添加路由规则才能做到这一点?

有任何想法吗?

4

2 回答 2

4

创建一个新的自定义路由并使用 Phill Haack 的Route Debugger来测试您的路由:

routes.MapRoute(
    "customroute",
    "{url}", 
    new { controller = "UrlHandler",
        action = "Process",
        url = ""
    }
);

控制器:

public class UrlHandlerController : Controller
{
    [HttpGet]
    public ActionResult Process(string url)
    {
        return View();

        /* or */
        if(url == "something"){
            return View("SomethingView");
        }
        else if(url == "somethingelse"){
            return View("SomethingElseView");
        }
    }

}
于 2012-07-06T02:21:18.583 回答
0

达斯,看看这条路线是否有帮助:

routes.MapRoute(
    "CustomRoute", // Route name
    "{url}", //Route formation
    new { controller = "UrlHandler", action = "Process" }, // Where to send it
    new { keyWord = @"\S+" } // Regex to identify the argument
);

问候。

于 2012-07-06T02:43:39.403 回答