页面无法在MVC4中使用@ Html.RenderAction显示

时间:2014-10-13 11:16:12

标签: c# asp.net asp.net-mvc entity-framework asp.net-mvc-4

我遇到的问题是,当我在布局中使用@ Html.RenderAction或@ Html.Action并且从控制器页面调用Action方法时根本不显示。但是当我在布局中使用静态属性时,一切正常。

布局:

  <li>
   <a href="#"><i class="fa fa-fw"></i> Category<span class="fa arrow">  </span></a>
           <ul class="nav nav-second-level">
                   @{
                     Html.RenderAction("Category","Home");
                    }
           </ul>
   </li>

行动方法:

public ActionResult Category()
    {
        int memberId = WebSecurity.GetUserId(User.Identity.Name);

        return PartialView("_Categories", _db.Query<Category>().ToList().Where(u => u.UserId == memberId));
    }

PartialView:

@model IEnumerable<PasswordCloudApp.Models.Category>

@{ Layout = "~/Views/Shared/_Layout.cshtml"; }

@foreach (var item in Model)
{
<li>
    @Html.ActionLink(item.Name, "Index", "Entry", new { id = item.Id }, null)
</li>
}

我尝试过常规视图,然后使用局部视图,它都不起作用。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

只是一个想法,不确定

您应该从部分视图@{ Layout = "~/Views/Shared/_Layout.cshtml"; }中删除此行 然后试一试。希望这有帮助

答案 1 :(得分:0)

根据我的理解,请返回view的完整路径,例如~/Views/Shared/_Categories.cshtml",而不是_Categories。如果你想要布局,那么使用相同的代码,否则使用

@{ Layout = null; }

删除布局并使用如下:

@Html.Action("Category","Home")