RedirectToAction メソッドを使用して、単一のアクション (またはコントローラー) に存在しない場合に www プレフィックスを追加する簡単な方法はありますか?
Redirect() を使用してみましたが、他の問題がいくつかあります。セッションを再開すると思います。
アップデート:
次のような属性を実装するクラスを追加しました。
public class ExtendAttributes
{
public class AddwwwPrefix : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
string host = filterContext.HttpContext.Request.Url.Host;
if (host.Contains("www."))
{
return; //It already contains www. so don't change it
}
else
{
host = "www." + filterContext.HttpContext.Request.Url.Host;
}
// redirect to HTTP
string url = "http://" + host + filterContext.HttpContext.Request.RawUrl;
filterContext.Result = new RedirectResult(url);
}
}
}
したがって、次のように使用できます。
[ExtendAttributes.AddwwwPrefix]
public ActionResult MyAction()
{
...