2012-06-14 118 views
0

我想學習MVC 3,所以我是一個noob。現在,我只想製作一個基本網站,即使用jQuery和CSS的HTML網頁。當我使用MVC時,我並不需要模型,因爲沒有任何數據被傳遞給應用程序。但是,這對我造成了一個問題,因爲我在嘗試發佈此網站時遇到HTTP 403.14 Forbidden錯誤。我認爲應用程序的結構方式有些問題,當我到達localhost:1081網站時,它不會允許它正確執行。這裏是我的全部:MVC3 Web應用程序不會發布

HomeController.cs

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

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

} 

}

這只是返回Index.cshtml的視圖。

Index.cshtml:

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

我所有的HTML代碼投入_Layout.cshtml。使用jQuery和CSS。該網站工作正常,當我做調試選項,但是當我嘗試發佈它給我403.14禁止。我已經運行了內聯命令aspnet_regiis -i,它似乎工作,但不允許項目運行。

的Global.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?

Web.config文件:

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

我不想目錄瀏覽,和我曾嘗試使用此選項以及玩。如果我啓用,它允許我查看內容但不顯示頁面。

所以有兩個問題:1.)我是否需要有一個模型,即使我沒有將任何數據傳遞給應用程序,只是試圖渲染一個網站? 2.)我的網站設置/結構是否正確,或者我在這裏做了什麼錯誤?

感謝, 尼克

回答

0

不,你並不需要一個模型。

首先,不要使用默認文檔。 MVC覆蓋默認文檔處理並使用路由系統。

其次,您不想嘗試使用佈局頁面作爲文檔。佈局就像一個母版頁,用於創建一個真實文檔的包裝。

第三,說「不會發布」意味着您有問題通過發佈機制實際發佈網站。你的問題不是你無法發佈,因爲顯然它是這樣做的,但你的網站沒有執行。第四,403.14意味着它試圖列出目錄的內容,但是如果因爲MVC的路由選擇接管而正確配置MVC,則不應該發生這種情況。這意味着你在asp.net管道的某個地方有問題。

你要發佈到哪裏?您是否配置IIS以在此位置設置網站?鑑於您試圖從不同的端口號訪問該站點,在我看來,您沒有設置IIS來執行此操作,而是嘗試使用用於調試的相同端口。

爲了發佈站點,必須將IIS配置爲使用該位置。