ASP.NET MVC從空項目開始定制項目


在上一篇net core的文章中已經講過如何從零開始搭建WebSocket

今天聊聊ASP.NET的文件結構,如何用自己的目錄結構組織項目里的文件。

如果用Visual Studio(VS)向導或dotnet向導,會為我們生成一套MVC通用框架。不過,對於一個要求更特殊或更小的項目,它可能並不如我們所願。大小寫混合的文件名,有時也不太適合像Linux這樣的系統,至少我是這樣感覺。目錄層次太深也是挺煩惱的事情(誇張的設計,像nodejs里那種把windows地址最大長度都占滿是真挺嚇人的)。

假設我們只需要簡單的頁面,簡單的模板關系完成一個小小的網站,我們可以如下這般操作。

1)創建空項目,啟動文件。

在啟動文件里,一般是startup.cs,要有這樣一段屬於你的啟動類。我將向導生產的Program和Startup合並了,這樣更合適我們的目標。

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目錄起作用,這個目錄名就不研究怎么改名字了,意義不大。

UseMvc,使用Mvc。

異常處理頁“/error”就自己隨便定制吧,至少你看了本篇之后就會了。

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項目。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM