【问题标题】:Cannot figure out how to return part of the view and not all of it无法弄清楚如何返回部分视图而不是全部
【发布时间】:2013-01-26 01:55:49
【问题描述】:

我试图调用一个视图,但不是全部。我以前偶然做过,但我不记得我是怎么做的,然后又做了一次。

这是我展示的示例:

我只想显示红色圆圈所在的区域。

代码如下:

public ActionResult Logon()
{
  return View();
}

真的很简单,但我有 return PartialView(); 但这并没有改变它。

有人有什么想法吗?

【问题讨论】:

    标签: c# asp.net-mvc razor view


    【解决方案1】:

    检查你的局部视图是否设置了布局

    类似

    @{
         Layout = "views/shared/sitelayout.cshtml";
    }
    

    如果是局部视图,那么您可以(可能)删除它

    如果你没有看到这一行,你可能有一个默认的布局继承,需要删除它。然后试试这个

    @{
         Layout = null;
    }
    

    【讨论】:

    • 我的视图中除了 hmtl 和一些 @Html.DisplayFor 但没有布局之外没有任何内容。感谢您的快速回复。
    【解决方案2】:

    在 ASP.NET MVC 中,默认模板有一个名为 Layout.cshtml 的页面,它被用作调用 @RenderBody() 方法的此布局内的其他视图呈现的基本视图。它在 _ViewStart.cshtml 页面中定义,并自动应用于所有视图。如果要呈现没有 Layout 页面的 View,则必须将 View 的 Layout 属性设置为 null。

    @{
       Layout = null;
    }
    

    但是,请记住,如果您的视图没有,您必须添加一些 html 布局才能获得正确的 html。像这样的:

    @{
       Layout = null;
    }
    <html>
    <head>
       <title>@ViewBag.Title</title>
    <body>
    
    // content view
    
    </body>
    </html>
    

    您也可以使用 Html.RenderPartial 方法在另一个视图中渲染视图:

    @Html.RenderPartial("YouPartialFileName")
    

    【讨论】:

      猜你喜欢
      • 2019-11-17
      • 1970-01-01
      • 2020-06-19
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 2014-12-18
      • 1970-01-01
      相关资源
      最近更新 更多