0
我創建了一個OnActionExecuted過濾器來填充一些viewmodel屬性與數據從數據庫(我沒有使用ViewData [「somekey」],喜歡許多ViewModels降序一個共同的祖先)。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試圖訪問視圖模型,其尚未被初始化。而且,填充這些值完全沒用,因爲它們不會被使用,因爲另一個動作將被調用。
如何避免在重定向上填充viewodel?
爲什麼不呢?謝謝 – giorgian 2009-08-28 17:11:57