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

来源:https://www.cnblogs.com/fyter/archive/2018/07/10/mini-aspnet-core-mvc.html
-Advertisement-
Play Games

在上一篇net core的文章中已經講過如何從零開始搭建WebSocket。 今天聊聊ASP.NET的文件結構,如何用自己的目錄結構組織項目里的文件。 如果用Visual Studio(VS)嚮導或dotnet嚮導,會為我們生成一套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項目。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近在看Robert Sedgewick 和Kevin Wayne寫的演算法(第四版) ,看到字元串部分,正好給出了Java字元串的API(部分,也是直接自己接觸的較為常用的) 覺得自己也應該好好總結一些,首先給一點簡單的,之後看到第五章部分,有關字元串的內容再補上。 表 Java 字元串API(部分 ...
  • Description 為了表彰小聯為Samuel星球的探險所做出的貢獻,小聯被邀請參加Samuel星球近距離載人探險活動。 由於Samuel星球相當遙遠,科學家們要在飛船中度過相當長的一段時間,小聯提議用撲克牌打髮長途旅行中的無聊時間。玩了幾局之後,大家覺得單純玩撲克牌對於像他們這樣的高智商人才來 ...
  • from flask import Flask app = Flask(__name__) # app.config.update(DEBUG=True)#開啟debug模式 #載入配置文件方法一 # import config # app.config.from_object(config) # ... ...
  • 1、首先從網站下載pycharm,如下圖,根據自己電腦的操作系統進行選擇,對於windows系統選擇圖中紅色圈中的區域。 2、下載完成之後如下圖: 3、直接雙擊下載好的exe文件進行安裝,安裝截圖如下: 點擊Next進入下一步: 點擊Next進入下一步: 點擊Install進行安裝: 安裝完成後出現 ...
  • 編程語言Python語法簡單,代碼可讀性高,不僅適合初學者學習,而且崗位需求大,薪資一路也是水漲船高,即使是剛畢業的應屆畢業生,薪資也在12500元每月。 因此,很多程式員很樂意去研究這門編程語言,那麼有哪些值得收藏的Python書單呢? Python入門 《“笨辦法”學Python(第3版)》 本 ...
  • 關於死鎖,估計很多程式員都碰到過,並且有時候這種情況出現之後的問題也不是非常好排查,下麵整理的就是自己對死鎖的認識,以及通過一個簡單的例子來來接死鎖的發生,自己是做python開發的,但是對於死鎖的理解一直是一種模糊的概念,也是想過這次的整理更加清晰的認識這個概念。 用來理解的例子是一個簡單的生產者 ...
  • 用過手機QQ就知道,點擊一個圖片會彈出一個小功能,那就是提取圖片中的文字。非常方便實用,那麼很難實現嗎? 利用Python提取圖片中的文字信息,只需要一行代碼就能搞定! 當然,這是吹牛皮的,但是真正的Python代碼也就第4行,說是一行代碼搞定也沒錯。 示例: 效果 儘管運行Python代碼後也有幾 ...
  • `System.IO.Pipelines`是一個新的庫,旨在簡化在.NET中執行高性能IO的過程。它是一個依賴.NET Standard的庫, 適用於所有.NET實現 。 Pipelines誕生於.NET Core團隊,為使Kestrel成為業界最快的Web伺服器之一。最初從作為Kestrel內部的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...