2016-05-21 50 views
0

我编写了一个方法BaseController。并且HomeController从中吸入将值绑定到MasterPage(MVC5)时出错

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> 

请给一个建议。谢谢

回答

0

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

+0

似乎是不是相对于@ViewData [“用户名”] – JinLong

+0

感谢。实际上@ Html.ActionLink(“”,“LogOut”,“Home”)。我忘了通过链接文字。谢谢 – JinLong

0

如果您想拥有可用于所有的意见,用户可以使用此

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

OnActionExecuting将触发正确的呼唤你行动之前,一旦你在OnActionExecuting功能设置用户在ViewData的变量可用于所有渲染视图。

在视图然后就打印出来

@ViewData["user"] 
+0

我已经修改它像你的方向。但它确实有效。它带来错误: 值不能为空或空。 参数名称:linkText 它在@ViewData [“user”] – JinLong

+0

感谢您的回复 – JinLong

+0

@JinLong在问题中发布您的错误,我显示的代码我在我的应用程序中使用它,所以它会帮助如果您发布错误消息 –

相关问题