加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ASP.NET MVC返回ViewResult

发布时间:2020-12-15 08:07:51 所属栏目:百科 来源:网络整理
导读:我试图从ActionFilterAttribute类返回OnActionExecuted方法覆盖中的ViewResult 如下…… public override void OnActionExecuted(ActionExecutedContext filterContext){ if (CreateCookie filterContext.Exception == null) { LoginCookies lcookie = new L
我试图从ActionFilterAttribute类返回OnActionExecuted方法覆盖中的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);
    }

它可以返回到名为“Login”的视图,但我需要将模型对象传递给此视图(在这种情况下,模型对象是用户的类型),我不知道如何直接使用ViewResult类传递它.

有任何想法吗?

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

解决方法

我遇到了同样的问题,我传递给View的Model总是为NULL.我能够通过以下方式将模型传递给我的视图:

创建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;

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读