我希望能够处理通过某个控制器请求的任何 url。
foo.com/a
foo.com/abcd
foo.com/x1
对于 foo.com/a
我想用
UrlHandlerController
用Process(string url)
方法。
我应该如何添加路由规则才能做到这一点?
有任何想法吗?
我希望能够处理通过某个控制器请求的任何 url。
foo.com/a
foo.com/abcd
foo.com/x1
对于 foo.com/a
我想用
UrlHandlerController
用Process(string url)
方法。
我应该如何添加路由规则才能做到这一点?
有任何想法吗?
创建一个新的自定义路由并使用 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");
}
}
}
达斯,看看这条路线是否有帮助:
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
);
问候。