Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC-嵌套局部视图_C#_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# MVC-嵌套局部视图

C# MVC-嵌套局部视图,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,当我在我的MVC应用程序中嵌套部分视图时,我收到一个错误(“应用程序中的服务器错误”)。视图单独工作正常,但嵌套时则不行。我的理解是这样做是可以的,那么我做错了什么 本质上,我试图在我的\u Layout.cshtml中使用分部作为子布局 这是我的主要布局-\u layout.cshtml <!DOCTYPE html> <html> <head>...</head> <body style="padding-top: 80px;">

当我在我的
MVC
应用程序中嵌套部分视图时,我收到一个错误(“应用程序中的服务器错误”)。视图单独工作正常,但嵌套时则不行。我的理解是这样做是可以的,那么我做错了什么

本质上,我试图在我的
\u Layout.cshtml
中使用分部作为子布局

这是我的主要布局-
\u layout.cshtml

<!DOCTYPE html>
<html>
<head>...</head>
<body style="padding-top: 80px;">  
    <div class="container-fluid">
        <div class="row">
            <div id="myTab" class="col-lg-12 col-md-12 col-sm-12">
                ...
                <div class="tab-content">
                    <div class="tab-pane fade" id="search">
                       @Html.Partial("~/Areas/Search/Views/Shared/_SearchLayout.cshtml")
                    </div>                   
                </div>
            </div>
        </div>
    </div>
    @RenderBody()
    @RenderSection("scripts", required: false)
</body>
</html>

...
...
@Html.Partial(“~/Areas/Search/Views/Shared/\u SearchLayout.cshtml”)
@RenderBody()
@RenderSection(“脚本”,必需:false)
这是第一个局部视图(\u SearchLayout)。如果我删除了partials和@RenderBody,就不会有错误

<div class="container-fluid">
        @Html.Partial("_PolicySearch")
        @Html.Partial("_ClaimSearch")       
    </div>
@RenderBody()

@Html.Partial(“\u PolicySearch”)
@Html.Partial(“\u ClaimSearch”)
@RenderBody()
此局部视图嵌套在第一个局部视图(\u SearchLayout)中:


索赔查询

改用Html.RenderPartial

改用Html.RenderPartial

问题是
@RenderBody()
。这只能在版面中调用,当以这种方式使用时,
\u SearchLayout.cshtml
不是,不管它的名称如何


关于ASP.NET MVC中的布局、部分和视图,需要记住的重要一点是它们都是视图。唯一不同的是它们的使用方式。在本例中,您将
\u SearchLayout.cshtml
视图用作分部,分部不能使用
@RenderBody()

问题是
@RenderBody()
。这只能在版面中调用,当以这种方式使用时,
\u SearchLayout.cshtml
不是,不管它的名称如何


关于ASP.NET MVC中的布局、部分和视图,需要记住的重要一点是它们都是视图。唯一不同的是它们的使用方式。在本例中,您使用的是
\u SearchLayout.cshtml
视图作为部分视图,而部分视图不能在第一个部分视图中使用
@RenderBody()

  • 删除渲染器体
  • 将Html.Partial替换为Html.RenderPartial

  • 我还建议将局部视图重命名为不包含单词“Layout”的视图,以避免视图类型之间的不匹配。

    在第一个局部视图中:

  • 删除渲染器体
  • 将Html.Partial替换为Html.RenderPartial

  • 我还建议将局部视图重命名为不包含单词“Layout”的名称,以避免视图类型之间的不匹配。

    局部视图位于何处?您需要以与第一个路径相同的方式编写路径@{Html.RenderPartial(“~/Areas/Search/Views/BLAH/BLAH/_PolicySearch”)},并意识到需要将其命名为whitin braces@{Html.RenderPartial(“ViewName”);}。它们都在同一个文件夹中。我试过这个-{Html.RenderPartial(“~/Areas/Search/Views/Shared/_PolicySearch.cshtml”)}和这个{Html.RenderPartial(“_PolicySearch”)}。这两个都不起作用。您错过了这个@{Html.RenderPartial(“~/Areas/Search/Views/Shared/_PolicySearch”)}尝试了这个,但没有得到任何帮助。谢谢局部视图在哪里?您需要以与第一个路径相同的方式编写路径@{Html.RenderPartial(“~/Areas/Search/Views/BLAH/BLAH/_PolicySearch”)},并意识到需要将其命名为whitin braces@{Html.RenderPartial(“ViewName”);}。它们都在同一个文件夹中。我试过这个-{Html.RenderPartial(“~/Areas/Search/Views/Shared/_PolicySearch.cshtml”)}和这个{Html.RenderPartial(“_PolicySearch”)}。这两个都不起作用。您错过了这个@{Html.RenderPartial(“~/Areas/Search/Views/Shared/_PolicySearch”)}尝试了这个,但没有得到任何帮助。谢谢这是我的想法,但是当我删除@RenderBody()并保留部分视图时,我仍然得到了错误。然后还有一些其他问题在起作用。假设这是在开发过程中发生的,您应该会得到一个带有stacktrace的黄色死亡屏幕。如果您在生产环境中,您应该使用ELMAH之类的工具来记录错误,这样您仍然可以在那里看到stacktrace。或者,如果您有Visual Studio 2013,则可以进行远程调试。请参阅:。除此之外,您可以随时将
    临时添加到Web.config,但这在生产中可能有点危险。没有死亡的黄色屏幕,Elmah会以“未发现错误”作为响应。Fiddler显示一个302响应“对象移动到”。后面是一个500。我很困惑。这只是在生产中发生的,还是你在开发中也看到了这种行为?如果您可以在developmentdebug中复制它,并使用断点来尝试查明故障(在分部调用之前添加一个断点,然后在分部调用内部添加一个断点,等等)。继续,直到你能找到一条确切的线,在那里所有的地狱都消失了。这是我想的,但是当我删除@RenderBody()并保留部分视图时,我仍然得到了错误。然后还有一些其他问题在起作用。假设这是在开发过程中发生的,您应该会得到一个带有stacktrace的黄色死亡屏幕。如果您在生产环境中,您应该使用ELMAH之类的工具来记录错误,这样您仍然可以在那里看到stacktrace。或者,如果您有Visual Studio 2013,则可以进行远程调试。请参阅:。除此之外,您可以随时将
    临时添加到Web.config,但这在生产中可能有点危险。没有死亡的黄色屏幕,Elmah会以“未发现错误”作为响应。Fiddler显示一个302响应“对象移动到”。后面是一个500。我很困惑。这只是在生产中发生的,还是你在开发中也看到了这种行为?如果您可以在developmentdebug中复制它,并使用断点来尝试查明故障(在分部调用之前添加一个断点,然后在分部调用内部添加一个断点,等等)。继续联合国
     <div class="row top-buffer search-outline form-horizontal">
            <div class="col-md-1 search-icon-size text-primary">
                <i class="glyphicon glyphicon-heart"></i>
            </div>
            <div class="col-md-1 search-icon-size text-primary">
                <h4>Claim Search</h4>
            </div>    
        </div>