【问题标题】:loading partial view differently以不同方式加载部分视图
【发布时间】:2013-09-10 09:14:50
【问题描述】:

我是 mvc 的新手,我知道只有两种方法可以渲染局部视图

@Html.Partial("PartialView1")

另一种是使用 jquery 加载部分视图。我想知道是否有其他方法可以加载部分视图。

当我从我的操作方法中以这种方式呈现局部视图时

[HttpPost]
public ActionResult Save(string name, string salary, string btnSubmit)
{
  return PartialView("TestPView");
}

然后 PartialView 内容在页面中呈现,但当 PartialView 显示时,共享外观从页面中消失。

我需要在局部视图中包含什么,以便在局部视图渲染时显示常见的外观和感觉。请指导我并向我展示加载部分视图的所有各种方式。谢谢

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    看看下面的链接。它将帮助您更好地理解在 MVC 中呈现部分视图的可能方式:

    http://www.dotnet-tricks.com/Tutorial/mvc/Q8V2130113-RenderPartial-vs-RenderAction-vs-Partial-vs-Action-in-MVC-Razor.html

    【讨论】:

      【解决方案2】:

      如果我理解正确,您正在寻找的是布局而不是PartialViewPartialView 为您提供了跨多个视图重用视图的一部分的选项。 布局为您提供网站的总体外观和感觉。

      这是 VS 为您生成的默认示例:

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

      【讨论】:

      • 我可以把这行放在局部视图中吗@{ Layout = "~/Views/Shared/_Layout.cshtml"; } ?
      • 局部视图只能嵌套在另一个视图中。因此,唯一可以应用布局的视图是父视图。它类似于 asp.net 中 MasterPage 的概念。但是您可以嵌套部分视图。因此,您可以创建一个 PartialView “Parent”并在其中渲染其他几个。虽然,它需要一些 if 逻辑。如果更清楚一点,布局类似于 MasterPage,PartialView 类似于 UserControl。
      • @{ 布局 = "~/Views/Shared/_Layout.cshtml"; } 如果我包含这一行,它会给出任何错误吗?
      • 在常规视图中,它应该位于视图的顶部,与@model 处于同一级别:@using NpuRequest.Models; @using NpuRequest.Helpers; @using NpuRequest.Properties; @model Step1 @{ Layout = "~/Views/Shared/_Layout.cshtml"; } - 这是一个示例。关于 PartialView。我自己从未尝试过。但我猜它在渲染页面时会抛出错误。
      猜你喜欢
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 2017-06-30
      • 2016-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多