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

原文地址:https://www.cnblogs.com/fyter/p/mini-aspnet-core-mvc.html

时间: 2024-07-30 19:38:07

ASP.NET MVC从空项目开始定制项目的相关文章

ASP.NET MVC 此安装不支持该项目类型解决方法

http://www.cnblogs.com/younggun/archive/2011/03/03/1969498.html ASP.NET MVC  此安装不支持该项目类型解决方法 打开 .csproject 文件  在  <ProjectTypeGuids>中的三个GUID的前两个修改为: {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21}; 后面还有一个 GUID 是你项目的GUID

ASP.NET MVC模块化开发——动态挂载外部项目

原文:ASP.NET MVC模块化开发--动态挂载外部项目 最近在开发一个MVC框架,开发过程中考虑到以后开发依托于框架的项目,为了框架的维护更新升级,代码肯定要和具体的业务工程分割开来,所以需要解决业务工程挂载在框架工程的问题,MVC与传统的ASP.NET不同,WebForm项目只需要挂在虚拟目录拷贝dll就可以访问,但是MVC不可能去引用工程项目的dll重新编译,从而产生了开发一个动态挂在MVC项目功能的想法,MVC项目挂载主要有几个问题,接下来进行详细的分析与完成解决方案 一般动态加载dl

asp.net MVC提高开发速度(创建项目模板)

往新建项目里加入一个自定义模板.... 把你常用的一样东西封装进去.直接通过建项目的方式.生成该多爽.. 首先选择导出模板.... 选择好项目,然后下一步.完成..就生成了项目模板... vs2013默认的网站模板目录在 C:\Users\Administrator\Documents\Visual Studio 2013\Templates\ProjectTemplates\Visual C#\Web vs2013导出的模板默认放在这 C:\Users\Administrator\Docume

asp.net MVC 5 Scaffolding多层架构代码生成向导开源项目(邀请你的参与)

Visual Studio.net 2013 asp.net MVC 5 Scaffolding代码生成向导开源项目 提高开发效率,规范代码编写,最好的方式就是使用简单的设计模式(MVC , Repoistory Pattern)+ 模板生成工具.每个小型的软件公司似乎都有自己的基础开发平台,大部分都是基于数据字典+模板动态生成CRUD的操作页面:一般的项目80%代码都可以通过模板生成但并不意味着可以缩短80%的项目开发时间,毕竟很多的业务操作还是要根据用户的需求去定制开发还是需要不少时间去理解

用网站(WebSite而不是WebProject)项目构建ASP.NET MVC网站

从ASP.NET MVC第一个版本开始到现在,创建ASP.NET MVC项目的官方方法只有一个,“文件”->“新建”->“项目”,然后选择ASP.NET MVC X Web应用程序. 这种方式当然有其好处,但是很多时候,网站项目(WebSite)而不是Web应用程序(WebProject)更适合大型网站,能更充分的利用ASP.NET的优势,创建可伸缩性更好的网站出来. 其实说到底,ASP.NET MVC也不过就是一个ASP.NET的一个扩展框架而已,所以网站项目当然也能用上MVC,并且,可以用

ASP.NET MVC 5 入门教程 (2) 控制器Controller

上一节:ASP.NET MVC 5 入门教程 (1) 新建项目 源码下载:点我下载 顾名思义,一个MVC项目是由M-Model-模型.V-View-视图.C-Controller-控制器这三部分组成.关系图如下所示. 先撇开MVC的整体运行机制不谈,我们可以看到用户发起的请求首先会到达控制器Controller. 控制器的定义:控制器是一种类,它可以处理浏览器发来的请求,从模型(Model)中获取数据,然后将处理后的数据通过视图(View)发送给浏览器. 我们首先创建一个Controller.在

转:ASP.Net MVC:校验、AJAX与过滤器

原文地址:http://blog.jobbole.com/85005/ 一.校验 — 表单不是你想提想提就能提 1.1 DataAnnotations(数据注解) 位于 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据模型中的各个字段的验证.这些特性用于定义常见的验证模式,例如范围检查和必填字段.而 DataAnnotations 特性使 MVC 能够提供客户端和服务器验证检查,使你无需进行额外的编码来控制数据的有效. 通过为模型类增加数据描

ASP.NET MVC 实现与SQLSERVER的依赖缓存

本文主要是为了了解ASP.NET MVC 实现与SQLSERVER的依赖缓存的功能,针对自己对于这方面知识的学习的过程的一个记录.由于本人也是初次了解这个知识点,有哪些错误,还望高手不吝赐教哦.好,下面正式进入话题. 1.测试的环境及工具: vs2012 sqlserver2008r2 2.测试目的:当数据库的值有变化时候,页面的缓存也会及时更新. 具体步骤: 1.在VS2012中新建一个ASP.NET MVC 的空的项目. 2.新建一个HomeController ,并创建Index试图.代码

ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity Framework的背景信息,然后再详细学习如何搭建开发环境. 1.1 MVC和ASP.NET MVC 这本书涵盖Microsoft版本的MVC,即ASP.NET MVC.在写本书的时候,ASP.NET MVC的生产版本为MVC5,因此,本书的示例代码都使用ASP.NET MVC 5编写.在本书中