我试图强制域名不使用“www”。如果尝试,我想重定向用户。我很少看到 MVC 解决方案。有没有办法利用MVC内置的路由,或者最好的解决方案是什么。
谢谢
实现为 ActionFilter,因为它类似于 MVC,并且更加明确。
public class RemoveWwwFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var req = filterContext.HttpContext.Request;
var res = filterContext.HttpContext.Response;
var host = req.Uri.Host.ToLower();
if (host.StartsWith("www.")) {
var builder = new UriBuilder(req.Url) {
Host = host.Substring(4);
};
res.Redirect(builder.Uri.ToString());
}
base.OnActionExecuting(filterContext);
}
}
Run Code Online (Sandbox Code Playgroud)
将 ActionFilter 应用到您的控制器或您的基本控制器类(如果您有的话)。
有关操作过滤器的介绍,请参阅MSDN 上的了解操作过滤器。
[RemoveWwwFilterAttribute]
public class MyBaseController : Controller
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
996 次 |
| 最近记录: |