Model Validation 和测试Post参数
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MvcModelApp
{ [MetadataType(typeof(UserMetadata))]
public partial class tb_User
{
public string RePwd { get; set; }
} public class UserMetadata
{
[DisplayName("用户名")]
[Remote("NotExitesUserName", "Home")]
public string UserName { get; set; }
[DisplayName("备注")]
[DataType(DataType.MultilineText)]
public string Remark { get; set; }
[DisplayName("年龄")]
[Range(, )]
public int Age { set; get; } [DisplayName("密码")]
[PasswordPropertyText]
public string Pwd { get; set; } [PasswordPropertyText]
[DisplayName("重述密码")]
[System.Web.Mvc.Compare("Pwd")]
public string RePwd { get; set; } [Email]
public string Email { get; set; }
} public class EmailAttribute : RegularExpressionAttribute
{
public EmailAttribute()
: base(@"^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$")
{ }
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
这个是ADO.NET EF 自动生成的类
namespace MvcModelApp
{
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc; public partial class tb_User
{
public int ID { get; set; }
public string UserName { get; set; }
public string Remark { get; set; }
public int Age { get; set; }
public string Pwd { get; set; }
public string Email { get; set; }
} }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MvcModelApp.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
private TestMvcEntities db = new TestMvcEntities();
public ActionResult Index()
{
var list = db.tb_User.ToList();
return View(list);
} public ActionResult Register()
{
tb_User model = new tb_User();
return View(model);
}
[HttpPost]
public ActionResult Register(tb_User model)
{
if (ModelState.IsValid)
{
db.tb_User.Add(model);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View();
} }
[HttpGet]
public JsonResult NotExitesUserName()
{
string UserName = Request.Params["UserName"];
var user = db.tb_User.Where(c => c.UserName == UserName).FirstOrDefault();
return user == null ? Json(true, JsonRequestBehavior.AllowGet) : Json(false, JsonRequestBehavior.AllowGet);
} public JsonResult TestArr(List<string> arr)
{
//string ss=
return Json(new {success= });
} }
}
@model IEnumerable<MvcModelApp.tb_User> @{
ViewBag.Title = "Index";
}
<script src="~/Scripts/jquery-1.7.2.min.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<h2>Index</h2> <script type="text/javascript">
$(document).ready(function () { //$(":text").map(function () {
// alert($(this).val());
//}) var arr = new Array(); //var objstr = $(":text").map(function () {
// return $(this).text();
//}).get().join(","); $("#btnTest").click(function () {
// $(":text").each(function () { alert($(this).val());});
$("input[id^='txt']").each(function () {
arr.push($(this).val());
// alert($(this).val()); });
// var jsonobj = {"arr":arr,"ljj":"1"};
$.ajax({
type: "POST",
url: "@Url.Action("TestArr", "Home")",
data: JSON.stringify(arr),
contentType: "application/json",
success: function (data, status) {
alert(data);
}
}); // var str = arr.join(",");
// alert(str); }); });
// var obj = </script> <p>
<input type="text" id="txt1" />
<input type="text" id="txt2" />
<input type="text" id="txt3" />
<input type="text" id="txt4" /> <input id="btnTest" type="button" value="测试传递数组对象" /> </p> <p>
@Html.ActionLink("Register","Register", "Home")
</p>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.RePwd)
</th>
<th>
@Html.DisplayNameFor(model => model.UserName)
</th>
<th>
@Html.DisplayNameFor(model => model.Remark)
</th>
<th>
@Html.DisplayNameFor(model => model.Age)
</th>
<th>
@Html.DisplayNameFor(model => model.Pwd)
</th>
<th>
@Html.DisplayNameFor(model => model.Email)
</th>
<th></th>
</tr> @foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.RePwd)
</td>
<td>
@Html.DisplayFor(modelItem => item.UserName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Remark)
</td>
<td>
@Html.DisplayFor(modelItem => item.Age)
</td>
<td>
@Html.DisplayFor(modelItem => item.Pwd)
</td>
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", new { id=item.ID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.ID })
</td>
</tr>
} </table>
@model MvcModelApp.tb_User @{
ViewBag.Title = "Register";
}
<script src="~/Scripts/jquery-1.7.2.min.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<h2>Register</h2>
@using (Html.BeginForm("Register","Home",null,FormMethod.Post,new {id="form1"}))
{
<table>
<tr>
<td>@Html.Display("UserName")</td>
<td>@Html.TextBoxFor(x=>x.UserName)@Html.ValidationMessageFor(x=>x.UserName)</td>
</tr>
<tr>
<td>@Html.DisplayFor(x=>x.Age)</td>
<td>@Html.TextBoxFor(x=>x.Age)@Html.ValidationMessageFor(x=>x.Age)</td>
</tr>
<tr>
<td>@Html.DisplayFor(x=>x.Pwd)</td>
<td>@Html.TextBoxFor(x=>x.Pwd)@Html.ValidationMessageFor(x=>x.Pwd)</td>
</tr>
<tr>
<td>@Html.DisplayFor(x=>x.RePwd)</td>
<td>@Html.TextBoxFor(x=>x.RePwd)@Html.ValidationMessageFor(x=>x.RePwd)</td>
</tr>
<tr>
<td>@Html.DisplayFor(x=>x.Email)</td>
<td>@Html.TextBoxFor(x=>x.Email)@Html.ValidationMessageFor(x=>x.Email)</td>
</tr>
<tr>
<td>@Html.DisplayFor(x=>x.Remark)</td>
<td>@Html.TextBoxFor(x=>x.Remark)@Html.ValidationMessageFor(x=>x.Remark)</td>
</tr>
<tr>
<td colspan=""><input type="submit" value="注册"/></td>
</tr> </table>
}
Model Validation 和测试Post参数的更多相关文章
- 训练集(train set) 验证集(validation set) 测试集(test set)
转自:http://www.cnblogs.com/xfzhang/archive/2013/05/24/3096412.html 在有监督(supervise)的机器学习中,数据集常被分成2~3个, ...
- <转>ASP.NET学习笔记之MVC 3 数据验证 Model Validation 详解
MVC 3 数据验证 Model Validation 详解 再附加一些比较好的验证详解:(以下均为引用) 1.asp.net mvc3 的数据验证(一) - zhangkai2237 - 博客园 ...
- [机器学习] 训练集(train set) 验证集(validation set) 测试集(test set)
在有监督(supervise)的机器学习中,数据集常被分成2~3个即: 训练集(train set) 验证集(validation set) 测试集(test set) 一般需要将样本分成独立的三部分 ...
- AI---训练集(train set) 验证集(validation set) 测试集(test set)
在有监督(supervise)的机器学习中,数据集常被分成2~3个即: 训练集(train set) 验证集(validation set) 测试集(test set) 一般需要将样本分成独立的三部分 ...
- 训练集(train set) 验证集(validation set) 测试集(test set)。
训练集(train set) 验证集(validation set) 测试集(test set). http://blog.sina.com.cn/s/blog_4d2f6cf201000cjx.ht ...
- Model Validation in ASP.NET Web API
Model Validation in ASP.NET Web API 原文:http://www.asp.net/web-api/overview/formats-and-model-binding ...
- Model Validation in Asp.net MVC
原文:Model Validation in Asp.net MVC 本文用于记录Pro ASP.NET MVC 3 Framework中阐述的数据验证的方式. 先说服务器端的吧.最简单的一种方式自然 ...
- paip.提升性能---mysql 性能 测试以及 参数调整.txt
paip.提升性能---mysql 性能 测试以及 参数调整.txt 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://b ...
- [转载]SOAPUI压力测试的参数配置
原文地址:SOAPUI压力测试的参数配置作者:goooooodlife The different Load Strategies available in soapUI and soapUI Pro ...
随机推荐
- java代码开启关闭线程(nginx)
源码: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; pub ...
- thinkphp5.1注解插件
前言: thinkphp5.1中用注解的方式实现: v0.1.0版本 数据验证器 请求过滤.格式化 属性对象注入 dev-master版本 额外支持 自动事务 数据缓存 如果您觉得好用,点个star哈 ...
- Python学习第二十一课——Mysql 对数据库的基本操作
数据库操作(DDL) 在数据库下创建表(create_table) 创建表代码块: CREATE TABLE employee( id TINYINT PRIMARY KEY auto_increme ...
- request库解析中文
官网地址: http://cn.python-requests.org/zh_CN/latest/ 高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某 ...
- JAVA 常用包
JAVA是以包的形式进行语言结构组织的. 引入这些包的关键词就是 import 下面说说 JAVA常用包有下面的几个 1. java.lang 这个是默认引入的,也是一个最基础的包.其中lang不是中 ...
- uniGUI之通过URL控制参数(25)
通过URL代入参数,在代码中读取,如: http://localhost:8077/?ServerPort=212&&ServerIP=192.168.31.12 procedure ...
- 时间选择器UIDatePicker的使用
UIDatePicker的介绍 UIDatePicker这个类的对象让用户可以在多个车轮上选择日期和时间.iPhone手机上的‘时钟’应用程序中的时间与闹铃中便使用了该控件.使用这个控件时,如果你能配 ...
- C++结构体struct与C语⾔结构体和C++引⽤&与传值的区别
写再最前面:摘录于柳神的笔记: (1)定义好结构体 stu 之后,使⽤这个结构体类型的时候,C语⾔需要写关键字 struct ,⽽C++⾥⾯可以省 略不写: (2)这个引⽤符号 & 要和C语⾔ ...
- C++11通过拷贝构造器拷贝const字段(待解决)
问题梗概如标题所述. 在今天实现Token类的时候,遇到的问题. 我希望将Token类设定为immutable属性的,这样实现的方式是将这个类内的所有字段均设置为const型,同时每个字段均为publ ...
- Linux centosVMware mysql用户管理、常用sql语句、mysql数据库备份恢复
一.mysql用户管理 grant all on *.* to 'user1'@‘127.0.0.1’ identified by 'mimA123'; 创建user1用户 使用user1登录 /us ...