【问题标题】:Method to render partial view渲染局部视图的方法
【发布时间】:2014-06-04 07:13:03
【问题描述】:

我得到了一个 partialView,我只想在用户登录时渲染它。 我在想这样的事情:

查看:

@Html.ActionLink("Text", "Method", "Controller")



<section id="events">

    @Html.Partial("_CreateNewPost")

</section>

控制器:

    [Authorize]
    public ActionResult Method()
    {

        Code that renders the PartialView
        return View();
    }

这样,我假设未登录的用户将被发送到登录页面。 谢谢!

编辑: 所以我想知道是否可以在呈现部分视图的方法中创建代码。 现在的方式是,部分视图在页面加载后立即呈现。

【问题讨论】:

  • 那么问题是什么?
  • 编辑了希望澄清的问题。

标签: asp.net-mvc methods partial-views


【解决方案1】:

当然可以。在您的控制器上:

[Authorize]
[ChildActionOnly]
public ActionResult MyPartial()
{
    //Do stuff...
    return PartialView("_partialViewName");
}

然后在您看来:

@Html.Action("MyPartial", "ControllerName")

这在您想根据某些条件返回不同的局部视图或如果您想将一些数据(如视图模型)传递给视图的情况下很有用。 ChildActionOnly 指定该视图仅在从另一个视图调用时才可访问,因此您不能只在地址栏中键入 /controller/MyPartial。

【讨论】:

    【解决方案2】:

    您可以使用子操作:

    [Authorize]
    public ActionResult Method()
    {
        return PartialView("_CreateNewPost");
    }
    

    然后在你的视图中调用它:

    @if(Request.IsAuthenticated)
    {
        Html.Action("Method","SomeController")
    }
    

    【讨论】:

    • 谢谢!我也会试试这个!
    【解决方案3】:
    @Html.Partial("ViewName")
    @{ Html.RenderPartial("ViewName"); }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多