gpt4 book ai didi

c# - ASP.NET MVC 返回 ViewResult

转载 作者:太空狗 更新时间:2023-10-29 20:03:50 25 4
gpt4 key购买 nike

我试图在 OnActionExecuted 方法覆盖 ActionFilterAttribute 类中返回一个 ViewResult

像下面...

public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (CreateCookie && filterContext.Exception == null)
{
LoginCookies lcookie = new LoginCookies(usuDs, usuSenha);
lcookie.WriteCookie("SCE", 10);
}
else
{
filterContext.Result = new ViewResult() { ViewName = "Login" };
filterContext.Result.ExecuteResult
(filterContext.Controller.ControllerContext);
}

返回名为“登录”的 View 工作正常,但我需要将模型对象传递给此 View (在本例中模型对象是用户类型),我不知道如何使用 ViewResult 类直接。

有什么想法吗?

更新:我已经解决了将 filterContext.ExceptionHandled 设置为 TRUE 的问题,但主要问题没有解决,我无法设置 ViewModel 属性>,它始终为空。

最佳答案

我遇到了同样的问题,即传递给 View 的模型始终为 NULL。我能够通过以下方式将模型传递给我的 View :

创建您的 viewModel 并设置属性。创建一个新的 ViewResult 并为其提供您的 View 名称,然后将您的 viewModel 传递给 ViewData。

public override void OnActionExecuted(ActionExecutedContext filterContext)
{

TestViewModel viewModel = new TestViewModel;

//Here set all the properties of your viewModel such as your exception message

filterContext.Controller.ViewData.Model = viewModel;
filterContext.Result = new ViewResult { ViewName = "Login", ViewData = new ViewDataDictionary(viewModel)};
filterContext.ExceptionHandled = true;

}

关于c# - ASP.NET MVC 返回 ViewResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3570886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com