将值绑定到MasterPage(MVC5)时出错

时间:2016-05-21 02:47:42

标签: c# asp.net-mvc-5

我写了一个方法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>

请提出建议。感谢

2 个答案:

答案 0 :(得分:0)

标记的渲染可能会给你带来奇怪的错误。尝试通过添加结束标记来更正<img src=... />&lt; -----的标记。

答案 1 :(得分:0)

如果您想让所有观看者都可以使用此

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

OnActionExecuting将在调用您的操作之前触发,一旦您在OnActionExecuting函数中,您将用户设置在ViewData变量中,因此可用于所有渲染视图。

在视图上然后打印它

@ViewData["user"]