zoukankan      html  css  js  c++  java
  • 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项目。

  • 相关阅读:
    CSS3-给网页添加图片
    CSS3-margin,padding,border
    布局左固定右自适应
    Java-基础编程(螺旋矩阵&乘法表)
    Java IO流整理Rick
    Java-Eclipse插件开发学习笔记
    关于《程序语言-平台优越性》一文补充说明
    程序语言-平台优越性
    Understand RNN with TensorFlow in 7 Steps
    pandas mean 返回 inf
  • 原文地址:https://www.cnblogs.com/fyter/p/mini-aspnet-core-mvc.html
Copyright © 2011-2022 走看看