0

我正在尝试学习 MVC 3,所以我是菜鸟。现在,我只想制作一个基本站点,即使用 jQuery 和 CSS 的 HTML 页面。当我使用 MVC 时,我真的不需要模型,因为实际上并没有任何数据传递给应用程序。但是,这对我来说是个问题,因为当我尝试发布此站点时收到 HTTP 403.14 Forbidden 错误。我认为应用程序的结构方式存在问题,当我访问 localhost:1081 网站时,它无法正常执行。这就是我所拥有的:

家庭控制器.cs

public class HomeController : Controller
{
    //
    // GET: /Home/

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

}

}

这只是返回 Index.cshtml 的视图。

索引.cshtml:

@{ViewBag.Title = "My Web Site";} <h2>Web Site Title</h2>

我所有的 HTML 代码都放入了 _Layout.cshtml。使用 jQuery 和 CSS。当我执行调试选项时,该站点运行良好,但是当我尝试发布时,它给了我 403.14 禁止。我已经运行了内联命令 aspnet_regiis -i 它似乎可以工作,但不允许项目运行。

全球.asax:

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }

如果我将 _Layout 中的代码移动到索引,它就不起作用。有没有办法将它链接到 Index.cshtml?

网络配置:

<system.webServer>
<defaultDocument enabled="true">
  <files>
    <add value="_Layout.cshtml" />
  </files>
</defaultDocument>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>

我不想浏览目录,我也尝试过使用这个选项。如果我启用,它允许我查看内容但不呈现页面。

所以有两个问题:1.)我是否需要一个模型,即使我没有将任何数据传递给应用程序,只是试图呈现一个站点?2.)我的网站设置/结构是否正确,或者我在这里到底做错了什么?

谢谢,尼克

4

1 回答 1

0

不,你不需要模型。

首先,不要使用默认文档。MVC 覆盖默认文档处理并使用路由系统。

其次,您不想尝试将布局页面用作文档。布局就像一个母版页,用于在您的真实文档周围创建一个包装器。

第三,说“不会发布”意味着您在通过发布机制实际发布网站时遇到了问题。您的问题不是您不能发布,因为显然它正在这样做,而是您的网站没有执行。

第四,403.14 表示它正在尝试列出目录的内容,但如果 MVC 配置正确,则不会发生这种情况,因为 MVC 的路由会接管。这意味着您在 asp.net 管道的某个地方有问题。

你要发布到哪里?您是否将 IIS 配置为在此位置设置站点?鉴于您试图从不同的端口号访问该站点,在我看来,您没有设置 IIS 来执行此操作,而是尝试使用用于调试的相同端口。

为了发布站点,必须将 IIS 配置为使用该位置。

于 2013-05-19T09:56:29.757 回答