在上一篇net core的文章中已經講過如何從零開始搭建WebSocket。html
今天聊聊ASP.NET的文件結構,如何用本身的目錄結構組織項目裏的文件。node
若是用Visual Studio(VS)嚮導或dotnet嚮導,會爲咱們生成一套MVC通用框架。不過,對於一個要求更特殊或更小的項目,它可能並不如咱們所願。大小寫混合的文件名,有時也不太適合像Linux這樣的系統,至少我是這樣感受。目錄層次太深也是挺煩惱的事情(誇張的設計,像nodejs裏那種把windows地址最大長度都佔盡是真挺嚇人的)。linux
假設咱們只須要簡單的頁面,簡單的模板關係完成一個小小的網站,咱們能夠以下這般操做。web
1)建立空項目,啓動文件。windows
在啓動文件裏,通常是startup.cs,要有這樣一段屬於你的啓動類。我將嚮導生產的Program和Startup合併了,這樣更合適咱們的目標。centos
using Microsoft.AspNetCore; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; public class Program { public static void Main(string[] args) { WebHost.CreateDefaultBuilder() .UseStartup<Startup>() .Build().Run(); } } public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseBrowserLink(); app.UseDeveloperExceptionPage();// 使用開發者異常頁 } else { app.UseExceptionHandler("/error");// 使用異常處理器 } app.UseStaticFiles();// 靜態文件支持 app.UseMvc(); } }
其實就是添加mvc支持,靜態文件支持一下,讓wwwroot目錄起做用,這個目錄名就不研究怎麼更名字了,意義不大。websocket
UseMvc,使用Mvc。mvc
異常處理頁「/error」就本身隨便定製吧,至少你看了本篇以後就會了。app
2)添加主頁控制器。框架
添加個文件,home.cs
嗯,這更像是小項目風格!
文件名不限,命名空間不限(有沒有也均可以),類名不限,超級爽是吧,自由度很是高。
不用去註冊你的路由了,直接使用Route屬性,就能夠描述你的路徑對應的方法。[Route("")]就是根目錄。也能夠是home/index這樣。也能夠有多個Route屬性描述。
你能夠用Controller::Ok方法直接返回HTTP相應代碼爲200的內容,返回值必定要IActionResult。也能夠是字符串返回值。
也能夠這樣:
而後添加一個razor視圖(index.cshtml),這樣視圖就能夠放在項目任意位置了,不用Views目錄:
<body> <div>任意內容</div> </body>
razor視圖依然能夠繼承_ViewStart.cshtml,Linux下注意大小寫。能夠添加@{Layout = "_layout.cshtml";}直接使用根目錄下的模板。
能夠在控制器裏給Controller::ViewData添加數據,ViewData["title"] = "一些描述"。 視圖裏能夠直接訪問。@ViewData["title"]。
@{ Layout = "_layout.cshtml"; } <body> <div>@ViewData["title"]</div> </body>
模板的知識這裏就不講了,關係不大。
3)運行便可。
這樣咱們就有了一個很是簡潔的MVC項目。