ASP.NET MVC

初始WebApi(1)

前提是你 提交于 2020-04-15 13:09:18
【推荐阅读】微服务还能火多久?>>> 如果你要问我WebApi是干嘛,我只能说它是的给数据。哈哈哈哈哈,这几天也才刚刚了解了解关于WebApi的知识,今天就来谈谈吧。 1.创建WebApi项目 第一步:选择ASP.NET Web应用程序 第二步:选择WebApi,记得要取消勾选Https配置,点击创建 第三步:创建完成后形成的项目结构 这里和ASP.NET MVC的目录结构看起来有点类似,其实还是有很大的不同的 在这里View视图其实不起什么作用。 下面来看看目录结构中有什么东西。 可以看到自动创建了两个控制器分别是Home和Values(这里的Student和User是我自己创建的) 进去看看。需要注意的是这里Home和下面介绍的Values是不同的控制器,哪里不同呢?等一下就知道啦 Home控制器: Values控制器: 与Home控制器最大的区别就在于继承的控制器前者是Controller、后者是ApiController 可以看到这里分别有几个方法:Get(查询)、Post(新增)、Put(修改)、以及Delete(删除) [FromBody]在这里的作用就是只接受从data中传递过来的参数,也就是其他传参方法比如QueryString形式的方法无法获取。 为什么系统自动帮我们创建了这四个方法呢? 1 using System; 2 using System

ASP.Net MVC——使用 ITextSharp 完美解决HTML转PDF(中文也可以)

孤者浪人 提交于 2020-04-15 12:58:04
【推荐阅读】微服务还能火多久?>>> 前言: 最近在做老师交代的一个在线写实验报告的小项目中,有这么个需求:把学生提交的实验报告(HTML形式)直接转成PDF,方便下载和打印。 以前都是直接用rdlc报表实现的,可这次牵扯到图片,并且更为重要的一点是 PDF的格式得跟学生提交的HMTL页面一样。经过网上查阅资料, 找到了ITextSharp插件。 ITextSharp很强大,但是在处理HMTL中的 img标签时,src中只能是绝对路径。 解决方法我写在了另一篇文章中 正文: ITextSharp就不多介绍了。项目的链接下载链接为 http://files.cnblogs.com/files/zuochengsi-9/H%E8%BD%ACPDF.zip 下开始项目之前得添加 ITextSharp.dll和ITextSharp.xmlworker.dll 后者是解决中文用的 可以从NuGet中下载引用,具体方法就不介绍了。网上很多解决方案。 项目结构图: 下面先说下主要操作: 步骤:1、将本地的某个视图转成字符串。 2、将字符串整合成PDF的文档,并返回byte数组。 3、讲比特流写到HTTP内容主体的二进制流中去。 视图转字符串代码: 首先新建两个类,转字符串的逻辑主要在RenderViewToString方法中。 public class HtmlViewRenderer {

ASP.NET Core 中的过滤器(Action过滤器,控制器过滤器,全局应用程序过滤器)

风流意气都作罢 提交于 2020-04-12 10:57:37
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 今儿是周六,苏州的天空飘着毛毛细雨,气温也下降了不少,上午去了苏州繁花中心,来到二楼,自学了会古筝,逛了逛商场,中午去了肯德基,给孩子买了鸡翅,我和我老婆大人各喝了一杯咖啡。下午回到家,躺在床上刷抖音,刷的时间长了,也就觉得特别无聊,索性看看博客园吧,嘿嘿,于是我买了一瓶100ML的56度牛栏山二锅头,边吃花生米边看,本打算看netcore的中间件,于是百度搜了一些内容,大多数写的中间件都是参考微软教程,看的也是索然无味,有的说中间件类似于AOP,有的说中间件是HTTP请求管道中的一个组件,用于拦截你的http请求并决定是否把你的请求传递给下一个中间件,总的来说,中间件就是一个横向切面编程,也就是所谓的AOP,这里咱们不讨论中间件,我们今天讨论的是和中间件功能类似的过滤器,何为过滤器呢?过滤器和中间件有何细微的差别呢?哈哈,其实本篇博客是转载的别人,原文地址:https://www.cnblogs.com/jlion/p/12394949.html 首先感谢原文作者的贡献,其次我之所以转载这篇博客,一是因为作者写的好,二是因为这些知识和之前的MVC过滤器很类似,再者,我之前也写过过滤器的应用,比如MVC的登录授权过滤器,对MVC的登录授权过滤器有兴趣的小虎斑可参考我的博客: https://www.cnblogs.com

razor syntax with errors compiles when it should not compile

拥有回忆 提交于 2020-04-11 17:32:56
razor syntax with errors compiles when it should not compile This is by design. The build of of MVC views is disabled by default. You can enable the build of your MVC views in Visual Studio like that: Right click on your project in Visual Studio Unload project Edit project Change the value for MvcBuildViews from false to true <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> ... <MvcBuildViews>true</MvcBuildViews> ... Reload project Next time you compile and there are errors in your MVC views,

浅谈MVC、MVP、MVVM架构模式

柔情痞子 提交于 2020-04-06 14:14:07
参考阮一峰网络日志,廖雪峰官方网站,以及部分网络资料总结 mvc(model-view-controller) 概念解释: MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制) 最上面的一层,是直接面向最终用户的 "视图层"(View) 。它是提供给用户的操作界面,是程序的外壳。 最底下的一层,是核心的 "数据层"(Model) ,也就是程序需要操作的数据或信息。 中间的一层,就是 "控制层"(Controller) ,它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。 简单理解:用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View) 联系与作用 :这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。这样一来,软件就可以实现 模块化 ,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。 JavaEE中的SSH框架(Struts/Spring/Hibernate),Struts(View, STL)-Spring(Controller, Ioc、Spring MVC)-Hibernate(Model,

如何在 ASP.NET MVC 中集成 AngularJS(2)

自闭症网瘾萝莉.ら 提交于 2020-03-25 19:34:12
3 月,跳不动了?>>> 在 如何在 ASP.NET MVC 中集成 AngularJS(1) 中,我们介绍了 ASP.NET MVC 捆绑和压缩、应用程序版本自动刷新和工程构建等内容。 下面介绍如何在 ASP.NET MVC 中集成 AngularJS 的第二部分。 ASP.NET 捆绑和压缩 CSS 和 JavaScript 的捆绑与压缩功能是 ASP.NET MVC 最流行和有效的特性之一。捆绑和压缩降低了 HTTP 请求和有效载荷的大小,结果是可以更快和更好的执行 ASP.NET MVC 的网站。有许多可以减少 CSS 和 JavaScript 合并的大小的方法。 捆绑可以很容易地将多个文件合并或捆绑到一个文件中。您可以创建 CSS,JavaScript 和其他包。压缩可以优化脚本和 CSS 代码,如去除不必要的空格和注释,缩短变量名到一个字符。由于捆绑和压缩降低你的 JavaScript 和 CSS 文件的大小,发送的 HTTP 的字节也会显著降低。 当配置包文件时,你需要考虑一个捆绑策略以及如何组织你的包文件。下面的 BundleConfig 类是内置的 ASP.NET 捆绑功能的配置文件。在 BundleConfig 类,我决定通过功能模块来组织我的文件。我为工程中的每一个文件设置了一个独立的捆绑,包括对脚本的单独捆绑,Angular 的核心文件,共享的

ASP.NET MVC 入门教程(四)发表评论

耗尽温柔 提交于 2020-03-25 13:02:16
3 月,跳不动了?>>> ASP.NET MVC 入门教程(四) 本部分主要实现评论内容的发表 一、在文章内容页上创建发表评论表单 <!--发表评论--> <form id="commentform" action="/Comment/Create" method="post"> <input type="hidden" name="articleId" value="@Model.Id" /> <div class="form-group"> <label for="content">评论内容</label> <input type="text" class="form-control" id="content" name="content" placeholder="请输入评论内容" /> </div> <button class="btn btn-default" id="btn">确定</button> </form> @section scripts{ <script src="~/Scripts/jquery-1.10.2.js"></script> <script> $(function () { $('#btn').on('click', function () { if($('#content').val()==""){ alert("请写下你的评论");

ASP.NET MVC入门教程(六)文章的管理

空扰寡人 提交于 2020-03-25 13:01:58
3 月,跳不动了?>>> ASP.NET MVC入门教程(六)文章的管理 本部分内容主要包括 1.文章的编辑:文章的编辑部分前端视图与发表文章的视图基本一致 2.文章的删除 一、文章的编辑 1.创建文章的编辑视图 在Article控制器的Edit(int id)方法内右键单击,选择添加视图 将Create视图的代码复制到Eidt视图中。 2.在Edit(int id)方法中输入以下代码。 对于编辑,要先根据其id取得文章的内容,并在视图上进行呈现,以便于用户进行内容的修改.在操作之前,先修改一下ArticleCreateViewModel视图模型,为其加上id属性。如果我们编辑也使用该视图模型,就必须有Id,否则,我们在更新记录时,要用到其Id。如果不想修改该模型,就重新另建一个视图模型即可。 public int id { get; set; } [Display(Name ="文章标题")] [Required(ErrorMessage ="文章标题不能为空")] [MinLength(6,ErrorMessage ="文章标题不能少于6个字符")] [MaxLength(30,ErrorMessage ="文章标题不能超过30个字符")] public string title { get; set; } // GET: Article/Edit/5 public

ASP.NET MVC入门教程(三)文章评论内容的加载与显示

北慕城南 提交于 2020-03-25 13:01:32
3 月,跳不动了?>>> ASP.NET MVC入门教程(三) 本部分主要实现内容页中评论内容的加载与显示 一、创建Comment控制器 1.在Controllers文件夹下,创建Comment控制器,控制器名称为CommentController 二、创建GetCommentByArticleId方法 1.引入命名空间 using MyStudy.Models; 2.创建数据上下文 private MyEFContainer db = new MyEFContainer(); 3.创建GetCommentByArticleId方法,代码如下 public PartialViewResult GetCommentByArticleId(int id) { List<tb_comment> comments = db.tb_comment .Where(m => m.ArticleId == id) .ToList(); return PartialView(comments); } 三、创建分部视图 1.创建分部视图 在方法内部右键单击,选择“添加视图” 2.修改视图如下 @model IEnumerable<MyStudy.Models.tb_comment> <div class="row"> <h4>评论内容</h4> <table class="table">

ASP.NET MVC入门教程(二)文章列表页、内容页的实现

守給你的承諾、 提交于 2020-03-25 12:29:32
3 月,跳不动了?>>> ASP.NET MVC入门教程(二) 本部分主要实现文章控制器的创建与列表页、内容页的设计与实现 一、布局页介绍 1.布局页介绍 在所有的网页中,有很多内容在所有的页面中都是相同的,比如Logo、导航、版权信息等部分,在ASP.NET Form时,采用母版页的方法实现,在MVC中,采用了布局页的方法。 布局页在Views下的Shared下,其项目默认的布局页是_Layout.cshtml,布局模板允许你在页面的某个地方指定HTML容器,然后在网站中多个页面中应用。 @RenderBody()。是一个占位符,即所有使用了该布局页的内容页,其内容会被显示在这个地方。 @RenderSection("scripts", required: false),这个是为了在子页面中引用JS,相当于在布局页中定义了一个占位符,在子页面中去填充这个占位。在子页面中使用以下方式来引用js @section scripts{} 在本教程中,不对布局页进行修改,只修改其超链接部分,修改部分如下 <ul class="nav navbar-nav"> <li>@Html.ActionLink("主页", "Index", "Home")</li> <li>@Html.ActionLink("关于", "About", "Home")</li> <li>@Html