mvc model-view-controller
控制器:控制器类处理客户端向Web应用程序发出的请求,获取数据,并指定返回给客户端,用来显示处理结果的视图。
模型:模型类代表了应用程序的数据,这些数据通常具有一个数据验证逻辑,用来使得这些数据必须符合业务逻辑。
视图:视图类是web应用程序中用来生成并显示HTML格式的服务器端对客户端请求的响应结果的模板文件。
在controller中:return RedirectToAction("Index");需要[HttpPost]属性。这个标签标识当请求类型为Post方式的时候将会由这个方法进行请求的处理。
使用EF中的ModelBuilder API来定义字段精度。在相应的cs中追加引用:using System.Data.Entity.ModelConfiguration;
在MovieDBContext类中重载OnModelCreating方法,代码如下:
public class MovieDBContext: DbContext
{
public DbSet<Movie> Movies{get; set;}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Movie>().Property(p=>p.Price).HasPrecision(18,2);
}
DRY原则:Don't Repeat Yourself. 在模型类中显式地追加一个验证规则,然后在整个应用程序中都是用这个验证规则。
如何追加验证规则?
打开cs文件,在追加引用:using System.ComponentModel.DataAnnotations;
验证规则:Required(必须输入),StringLength(输入字符长度),Range(输入范围)。例如:
public string Genre{get;set;}
[Required(ErrorMessage="必须输入票价")]
[Range(1,100,ErrorMessage="票价必须在1元到100元之间")]
public decimal Price{get; set;}
[StringLength(5, ErrorMessage="最多允许输入五个字符")]
在View中@Html.ValidationMessageFor(model=>model.Price)
MvcMusicStore
在典型的Web应用中,用户请求的URL地址通常映射到保存在网站中的文件上,例如请求/Products.aspx的时候很可能就是通过处理Products.aspx文件来完成任务。而ASP.Net MVC则是将这些URL地址映射到类的方法上,这些类被称为控制器,用来接收HTTP请求,处理用户的输入,获取或者保存数据,其中的处理方法称为Action,然后将回应发送到客户端,可能是显示了一个HTML的网页,下载一个文件,重定向到另外一个地址等等。
HttpUtility.HtmlEncode将字符串转化为HTML编码的字符串来处理用户的输入,防止用户的脚本注入攻击。
如果参数名是ID,id或Id。都可以用两种方式:1.Store/id=3 2.Store/3..其他参数只能用第一种。另外。。store这里不区分大小写。
使用自定义的HtmlHelper截断文本内容
using System.Web.Mvc;
namespace MvcMusicStore.Helpers
{
public static class HtmlHelpers
{
public static string Truncate(this HtmlHelper helper, string input, int length)
{
if(input.Length<=length)
{
return input;
}
else
{
return input.Substring(0, length)+"...";
}
}
}
}
模型验证 DataAnnotations
Required 必须-表示这个属性是必须提供内容的字段
DisplayName 显示名-定义表单字段的提示名称
StringLength 字符串长度-定义字符串类型的属性的最大长度
Range 范围-为数字类型的属性提供最大值和最小值
Bind 绑定-列出在讲请求参数绑定到模型的时候,包含和不包含的字段
ScaffoldColumn 支架列-在编辑表单的时候,需要隐藏起来的字符
浙公网安备 33010602011771号