1

ASP.NET MVC4 仅在 IIS7 上显示 @RenderBody 内容

设置:我有一个运行 Windows 7 的 VM,我在其上安装了带有 Web 平台安装程序的 IIS7、MVC3 和 MVC4。我使用 .NET 4.0 应用程序池在 IIS 中添加了一个新网站,然后使用 Visual Studio 2012 发布选项将 MVC4 Web 应用程序发布到网站的根目录。

问题是我得到的唯一输出是各个视图中的任何内容。没有布局,除了 @RenderBody 内容。

当我使用 Visual Studio 预览它时,它工作正常。

这是我的 _Layout.cshtml:

    <!DOCTYPE html>
    <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
    <!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
    <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width" />
        <title>@ViewBag.Title</title>
        <link rel="shortcut icon" type="image/x-icon" href="~/favicon.ico">

        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
    </head>
    <body>
        <!-- this is decorative -->
        <div class="topbar"></div>

        <div class="row header">
            <div class="five columns logo">            
                <a href="@Url.Action("Index", "Home")">
                    <img src="@Url.Content("~/Content/images/logo.png")">
                </a>
            </div>
            <div class="seven columns nav">
                @Html.Partial("_TopNavigationPartial")
            </div>
        </div>

        @RenderBody()

        <div class="row">
            <div class="twelve columns box-padding">
                <div class="box">
                    <div class="row footer">
                        <div class="six columns copyright">&copy; 2013 snip.</div>
                        <div class="six columns nav">
                            @Html.Partial("_BottomNavigationPartial")
                        </div>
                    </div>
                </div>
            </div>
        </div>

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

将输出的只是视图中的内容,例如:

    <div class="row">
        <div class="twelve columns box-padding">
            <div class="box">
                <h1>Home</h1>
                <p>You are here: Home/Index</p>
            </div>
        </div>
    </div>

有人知道为什么会这样吗?

可能只是我没有正确设置IIS7。

编辑:我刚刚上传了Internet application它,它做了完全相同的事情。仅输出视图内容。所以它绝对是 IIS 中的东西。

编辑 2:我在 IIS 中设置了Internet application一个应用程序,但它仍然只返回视图内容。奇怪的。

编辑3:得到它的工作,不知道如何。http://i.imgur.com/ZpKb4P5.gif

4

1 回答 1

1

设法解决了这个问题。不确定到底是什么问题,但我正在创建一个新网站,然后将发布的文件拖入其中,但无法正常工作。

然后我向默认网站添加了一个应用程序,该应用程序有效,但后来我发现这篇文章解释了默认网站本身就是一个应用程序。

所以最后我只是将发布的文件复制到默认的根目录中,它就可以工作了。

于 2013-01-30T16:55:58.537 回答