【问题标题】:Calling a view from another view in MVC .Net从 MVC .Net 中的另一个视图调用视图
【发布时间】:2016-09-02 07:32:56
【问题描述】:

我有一个名为LoggedIn.cshtml 的视图被LoggedInController 调用。 在 LoggedInView 内部,我有一个名为 _LoggedInPartial 的 PartialView 来显示包含不同菜单(如主页、配置文件等)的 nav 栏。

我想调用位于LoggedInView 内部的nav 栏的主菜单的另一个视图LoggedInHomeView onClick

我怎样才能做到这一点?

【问题讨论】:

  • @Html.Partial("ViewName")?
  • 您需要 javascript 来响应客户端事件,并需要 ajax 来调用返回要添加到 DOM 的局部视图的服务器方法
  • 首先我将如何从另一个视图调用视图?而且我要调用的视图也不是局部视图..
  • 可以使用RenderAction调用视图@{Html.RenderAction("View", "Controller");}
  • 试过了,但问题是_Layout页面会被调用两次,因此会重复常见的样式...

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


【解决方案1】:

假设你有一个名为 LoggedIn.cshtml 的视图,在你的视图中你会渲染一个名为 _LoggedInPartial 的局部视图,比如:

{ Html.RenderPartial("_LoggedInPartial"); }

通常,如果 _LoggedInPartial 用于在此视图内导航,则链接呈现如下:

<ul>
    <li>
        @Html.ActionLink("Title", "ActionName", "ControllerName")
    </li>
    <li>
        @Html.ActionLink("AnotherTitle", "AnotherActionName", "AnotherControllerName")
    </li>
</ul>

现在,当您单击链接时,您应该被重定向到所需的操作,它会为您呈现视图。

【讨论】:

  • 好吧,我的视图正在使用 RenderAction 进行渲染,但问题是 _Layout.cshtml 被多次渲染
  • 请尝试在“_LoggedInPartial”中使用以下代码。 @{ 布局 = null; }
【解决方案2】:

使用

@{Html.RenderPartial("View", "Controller");}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多