【问题标题】:RenderBody() is Leading to an exception( cannot be requested directly because it calls the "RenderBody" method.)RenderBody() 导致异常(不能直接请求,因为它调用了“RenderBody”方法。)
【发布时间】:2018-09-25 09:43:23
【问题描述】:

我正在尝试在添加客户视图页面中呈现视图页面,这导致视图页面出现错误,无法在 html 视图中加载, 提前谢谢..

创建新用户

                            @model acer.Table1

                           @{
                            ViewBag.Title = "CreateNewUser";

                         }

                        <h2>CreateNewUser</h2>


                       @using (Html.BeginForm()) 
                        {
                           @Html.AntiForgeryToken()

                        <div class="form-horizontal">
                      @Html.Partial("View")
                      <h4></h4>
                        <hr />


                    Shared view code is below-->
                    @{
                         Layout = "~/Views/Shared/View.cshtml";
                       }

                     <!DOCTYPE html>

                    <html>
                      <head>

                           <title>@ViewBag.Title</title>
                 <meta name="viewport" content="width=device-width, initial- 
                    [enter image description here][1]scale=1">

            </head>

            <body>
                <div class="sidenav">
                    <a href="Home">Home</a>
                    <a href="Profile">Profile</a>
                    <a href="Employees">Employees</a>
                    <a href="CreateNewUser">CreateNewUser</a>
                </div>
                <div class="main">

                </div>


                             <div class="container body-content">
                               @RenderBody()

                                 @*<footer>
                                  <p>&copy; @DateTime.Now.Year - MyASP.NET 
                                        Application</p>
                                    </footer>*@
                           </div>

                          @Scripts.Render("~/bundles/jquery")
                         @Scripts.Render("~/bundles/bootstrap")
                        @RenderSection("scripts", required: false)
                       </body>
                       </html>

// 错误信息 图片显示在下面的链接中... 1:https://i.stack.imgur.com/dyuFE.png

【问题讨论】:

  • @RenderBody() 进入布局文件,而不是视图文件。而且您不要在视图中放置 &lt;html&gt;&lt;head&gt; 标记 - 它们进入布局(连同通用代码)
  • 从视图文件中删除@RenderBody()并保留在布局文件中

标签: html asp.net-mvc


【解决方案1】:

不要直接调用这个@Html.Partial("View")。 在此视图中创建名为“_InnerView”的新局部视图,使用
@{ Layout = "~/Views/Shared/View.cshtml"; }

然后调用@Html.Partial("_InnerView")

希望这会对你有所帮助。

【讨论】:

    猜你喜欢
    • 2017-11-04
    • 2011-12-10
    • 2015-06-08
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多