Asp.net MVC4 Step by Step (2)-参数数据的传递
首先创建一个表单,不同于WebForm,框架提供了一系列HMTL帮助方法来生成HTML标签。 下面创建一个Create.cshtml为文件名的视图。
<h2> Create Auction</h2>
@using (Html.BeginForm())
{
<p>
@Html.LabelFor(model => model.Title)
@Html.EditorFor(model => model.Title)
</p>
<p>
@Html.LabelFor(model => model.Description)
@Html.EditorFor(model => model.Description)
</p>
<p>
@Html.LabelFor(model => model.StartPrice)
@Html.EditorFor(model => model.StartPrice)
</p>
<p>
@Html.LabelFor(model => model.EndTime)
@Html.EditorFor(model => model.EndTime)
</p>
<p>
<input type="submit" value="Create" />
</p>
}
用户可以在这个页面表单中填写商品数据,提交给/auctions/create操作。 这个Create操作标记了HttpPostAttribute标记属性,用来告诉ASP.NETMVC框架,它是用来处理HTML表单的Post方式提交的操作方法。
传统要得到提交的数据,需要把数据从请求消息中提出来, MVC框架中,可以把模型当做操作的参数,比如已经创建了一个模型, Auction类, 为了绑定之前定义额Auction类, 在操作方法上把Auction模型作为参数类型,
[HttpPost]
public ActionResult Create(Auction auction)
{
//数据库操作
return View(auction);
}
Auction模型类的属性名(Title, Description等)要与Html表单中提交的域元素名一致。就是name元素吧。
保存数据到数据库
使用Entity Framework代码优先模式创建数据库访问层, 它的核心有赖于System.Data.Entity.DbContext类。 这个类是代码访问数据库的网关,提供了数据库相关的操作。
using System.Data.Entity;
public class EbuyDataContext:DbContext
{
public DbSet<Auction> Auctions { get; set; }
public EbuyDataContext()
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<EbuyDataContext>());
}
}
在Auction.cs里, 我们创建了一个自定义的数据上下文类,名字是EbuyDataContext类, 这个类定义了一个属性System.Data.Entity.DbSet<T>, T 是编辑或保存到数据库的实体对象的类型, 这样System.Data.Entity.DbSet<Auction>就表示要保存Auction数据到数据库, 程序在运行的时候,如果没有相应数据库和表,就会新建库和表,然后写入数据。

[HttpPost]
public ActionResult Create(Auction auction)
{
var db = new EbuyDataContext();
db.Auctions.Add(auction);
db.SaveChanges();
return View(auction);
}
但是这样不加验证,就处理数据到数据库有风险,比如“ABC”保存到Int型的字段。 所以下一节讲的是怎么在服务端和客户端验证的问题。
Asp.net MVC4 Step by Step (2)-参数数据的传递的更多相关文章
- Asp.net MVC4 Step By Step(5)-使用Web API
Web API是ASP.net MVC4新增的一个特色, 应用于处理Ajax请求, 他同时使用了Web标准规范, 比如Http, Json,和XML,以及一系列构建REST数据服务的参考原则, 和AS ...
- Asp Net Core 5 REST API 使用 RefreshToken 刷新 JWT - Step by Step
翻译自 Mohamad Lawand 2021年1月25日的文章 <Refresh JWT with Refresh Tokens in Asp Net Core 5 Rest API Step ...
- [转]Bootstrap 3.0.0 with ASP.NET Web Forms – Step by Step – Without NuGet Package
本文转自:http://www.mytecbits.com/microsoft/dot-net/bootstrap-3-0-0-with-asp-net-web-forms In my earlier ...
- Asp.Net Core 5 REST API - Step by Step
翻译自 Mohamad Lawand 2021年1月19日的文章 <Asp.Net Core 5 Rest API Step by Step> [1] 在本文中,我们将创建一个简单的 As ...
- Asp.Net Core 5 REST API 使用 JWT 身份验证 - Step by Step
翻译自 Mohamad Lawand 2021年1月22日的文章 <Asp Net Core 5 Rest API Authentication with JWT Step by Step> ...
- SignalR + KnockoutJS + ASP.NET MVC4 实现井字游戏
1.1.1 摘要 今天,我们将使用SignalR + KnockoutJS + ASP.NET MVC实现一个实时HTML5的井字棋游戏. 首先,网络游戏平台一定要让用户登陆进来,所以需要一个登陆模块 ...
- EF框架step by step(7)—Code First DataAnnotations(1)
Data annotation特性是在.NET 3.5中引进的,给ASP.NET web应用中的类提供了一种添加验证的方式.Code First允许你使用代码来建立实体框架模型,同时允许用Data a ...
- asp.net mvc4 登录界面
说明:开发环境 asp.net mvc4 c#语言 1.项目目录结构 2.Login控制器中 public ActionResult Index() { return View(); } 对应Inde ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 第二章
Asp.Net MVC4 + Oracle + EasyUI 第二章 --使用Ajax提升网站性能 本文链接:http://www.cnblogs.com/likeli/p/4236723.html ...
随机推荐
- iPhone设备当前IP和SSID的获取
#import <Foundation/Foundation.h> typedef void(^Complation)(NSString *res); @interface WIFIMan ...
- php第十五节课
租房表 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...
- navicate远程访问ubuntu上的mysql数据库
安装mysql 首先检查系统中是否已经安装了MySQL,在终端里面输入: sudo netstat -tap | grep mysql 如上所示就是正确安装并启动,启动命令为 sudo /etc/in ...
- vim学习1-入门指令
使用vim命令进入vim界面 vim后面加上你要打开的已存在的文件名或者不存在(则作为新建文件)的文件名. 打开Xfce终端,输入以下命令 $ vim practice_1.txt 直接使用vim也可 ...
- 【Codeforces 522A】Reposts
[链接] 我是链接,点我呀:) [题意] 有人转载官方号的动态. 又有其他人转载其他人转载的动态. 问你最长的一条转载动态的链有多长. [题解] 用map把每个人的英文都转成小写的 然后从map中获取 ...
- Java基础学习总结(41)——JPA常用注解
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. JPA由EJB 3.0软件专 ...
- redis学习五,redis集群搭建及添加主从节点
redis集群 java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 在redis3.0之前,出现了sentinel工具来监控各个Master的状态(可以看上一篇博客).如果Master异 ...
- [HZOI 2016]tree—增强版
[HZOI 2016]tree—增强版 注意事项 为了体现增强版,题目限制和数据范围有所增强: 时间限制:1.5s 内存限制:128MB 对于15% 的数据,1<=N,Q<=1000. 对 ...
- springboot优雅的关闭应用
使用actuator,通过发送http请求关闭 将应用注册为linux服务,通过service xxx stop关闭 具体这两种方式如何实现,这里就不说了,网上百度一堆,主要讲一下在这两种情况下web ...
- E - Period
For each prefix of a given string S with N characters (each character has an ASCII code between 97 a ...