将值绑定到母版页 (MVC5) 时出错



我写了一个方法BaseController。而HomeController 就是从中固有的

 public abstract partial class BaseController : Controller
    {
        protected override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            if (Session["GeneralUserFullname"] != null)
            {
                ViewData["Username"] = Session["GeneralUserFullname"];
            }
            base.OnResultExecuted(filterContext);
        }
    }

在 _Layout.cshtml 之后。我调用ViewData["用户名"]打印名称以放置设置登录。我已经调试过,ViewData["用户名"]可以获得正确的值。

但它总是给出错误:不允许子操作执行重定向操作。

Line 88:                 <a class="dropdown-toggle" data-toggle="dropdown">
Line 89:                     <img src="http://placehold.it/300">
Line 90:                     <span>@ViewData["Username"]</span>
Line 91:                     <i class="caret"></i>
Line 92:                 </a>

请给出建议。谢谢

标记的呈现可能会给您带来奇怪的错误。 尝试通过添加结束标记来更正<img src=... /> <-----的标记。

如果你想让用户可用于所有视图,你可以使用它

public abstract partial class BaseController : Controller
    {
           protected override void OnActionExecuting(ActionExecutingContext ctx)
            {            
                base.OnActionExecuting(ctx);
                ViewData["user"] = "user";            
            }
    }

OnActionExecution将在调用操作之前触发,一旦您进入OnActionExecute函数,您就可以在ViewData变量中设置用户,从而可用于所有渲染的视图。

在视图上,然后只需打印它

@ViewData["user"]

最新更新