我有一个partialView,我只想在用户登录时呈现。 我在想这样的事情:
查看:
@Html.ActionLink("Text", "Method", "Controller")
<section id="events">
@Html.Partial("_CreateNewPost")
</section>
控制器:
[Authorize]
public ActionResult Method()
{
Code that renders the PartialView
return View();
}
这样,我会假设未登录的用户将被发送到登录页面。 谢谢!
编辑: 所以我想知道是否可以在渲染局部视图的方法中创建代码。 现在的方式是,只要页面加载就会呈现局部视图。
答案 0 :(得分:1)
您可以使用子操作:
[Authorize]
public ActionResult Method()
{
return PartialView("_CreateNewPost");
}
然后在你的视图中调用它:
@if(Request.IsAuthenticated)
{
Html.Action("Method","SomeController")
}
答案 1 :(得分:1)
当然可以。在您的控制器上:
[Authorize]
[ChildActionOnly]
public ActionResult MyPartial()
{
//Do stuff...
return PartialView("_partialViewName");
}
然后在你看来:
@Html.Action("MyPartial", "ControllerName")
如果要根据某些条件返回不同的局部视图,或者想要将某些数据(如viewmodel)传递给View,这非常有用。 ChildActionOnly
指定此视图仅在从其他视图调用时才可访问,因此您无法在地址栏中键入/ controller / MyPartial。
答案 2 :(得分:0)
@Html.Partial("ViewName")
@{ Html.RenderPartial("ViewName"); }