0
OnActionExecutedフィルタを作成して、一部のviewmodel属性にdbのデータを設定しました(ViewData ["somekey"]を使用していません)。共通の祖先)。ASP.NET MVC:リダイレクトでactionfiltersを実行せず、HttpExceptionをスローしない
public class BaseController : Controller
{
protected DataClassesDataContext context = new DataClassesDataContext();
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
ViewModel model = (ViewModel) ViewData.Model;
model.IsUserAuthenticated = filterContext.HttpContext.User.Identity.IsAuthenticated;
if (model.IsUserAuthenticated)
{
model.UserName = filterContext.HttpContext.User.Identity.Name;
}
model.CommonAttribute = from c in context.Something select new SomethingElse() {...};
}
}
問題は、リダイレクトにおけるアクションの結果または404エラーは、OnActionExecutedが初期化されていないビューモデルにアクセスしようとしたとき。また、別のアクションが呼び出されるため、使用されないため、これらの値を埋めることは全く無意味です。
リダイレクト時にViewDelを埋めるのを避けるにはどうすればよいですか?
理由は?ありがとう – giorgian