前段时间,参与了公司一个小项目。接触ASP.NET MVC时间不长,而且之前用的都是ASP.NET MVC1,但这个项目按要求,用的是
ASP.NET MVC3。简单在网上搜了点资料,一般做一边学,经过一段时间的摸索,也算是稍微熟悉了些。
在此将学习使用过程中,遇到的一些问题记录下来Mark一下。
一、Razor 视图引擎
关于这块网上有很多文章都做了专门介绍,非常详尽,有需要的可以baidu/Google搜一下!就我个人来说,感觉比较好的有以下这几点:
- 语法清晰、简单
- Visual Studio 对于 Razor 提供了智能提示和语法着色
- @* * 注释语法
- Html.Raw 方法提供了没有进行 HTML 编码的输出
- 支持在多个视图之间共享代码 ( _viewstart.cshtml )
这其中尤其是1、2两点,对于做过ASP.NET MVC1的人来说,那是相当的不错!!
二、Model验证
关于Model验证这块,多余的话不说了,直接贴上代码,相信大家一看就会发现这其中的优势
1 [PropertiesMustMatch("NewPassword", "ConfirmPassword", ErrorMessage = "新密码和确认密码不匹配。")]
2 public class ChangePasswordModel
3 {
4 [DisplayName("编号")]
5 public string StoreID { get; set; }
6
7 [DisplayName("当前密码")]
8 [Required(ErrorMessage = "请输入当前密码")]
9 public string OldPassword { get; set; }
10
11 [Required(ErrorMessage = "请输入新密码")]
12 [DataType(DataType.Password)]
13 [ValidatePasswordLength]
14 public string NewPassword { get; set; }
15
16 [Required(ErrorMessage = "请输入确认密码")]
17 [ValidatePasswordLength]
18 [DataType(DataType.Password)]
19 public string ConfirmPassword { get; set; }
20
21 [DisplayName("当前密码2")]
22 [Required(ErrorMessage = "请输入当前密码2")]
23 public string OldPassword2 { get; set; }
24
25 [Required(ErrorMessage = "请输入新密码2")]
26 [DataType(DataType.Password)]
27 [ValidatePasswordLength]
28 public string NewPassword2 { get; set; }
29
30 [Required(ErrorMessage = "请输入确认密码2")]
31 [ValidatePasswordLength]
32 [DataType(DataType.Password)]
33 public string ConfirmPassword2 { get; set; }
34 }
2 public class ChangePasswordModel
3 {
4 [DisplayName("编号")]
5 public string StoreID { get; set; }
6
7 [DisplayName("当前密码")]
8 [Required(ErrorMessage = "请输入当前密码")]
9 public string OldPassword { get; set; }
10
11 [Required(ErrorMessage = "请输入新密码")]
12 [DataType(DataType.Password)]
13 [ValidatePasswordLength]
14 public string NewPassword { get; set; }
15
16 [Required(ErrorMessage = "请输入确认密码")]
17 [ValidatePasswordLength]
18 [DataType(DataType.Password)]
19 public string ConfirmPassword { get; set; }
20
21 [DisplayName("当前密码2")]
22 [Required(ErrorMessage = "请输入当前密码2")]
23 public string OldPassword2 { get; set; }
24
25 [Required(ErrorMessage = "请输入新密码2")]
26 [DataType(DataType.Password)]
27 [ValidatePasswordLength]
28 public string NewPassword2 { get; set; }
29
30 [Required(ErrorMessage = "请输入确认密码2")]
31 [ValidatePasswordLength]
32 [DataType(DataType.Password)]
33 public string ConfirmPassword2 { get; set; }
34 }
三、ajax使用的注意
这是Controller的一个Action方法,返回JsonResult
1 public JsonResult IsExist(string Name)
2 {
3 JsonResult supjs = new JsonResult
4 {
5 Data = myService.CheckStoreName(Name),
6 };
7 return Json(supjs, JsonRequestBehavior.AllowGet);
8 }
2 {
3 JsonResult supjs = new JsonResult
4 {
5 Data = myService.CheckStoreName(Name),
6 };
7 return Json(supjs, JsonRequestBehavior.AllowGet);
8 }
用MVC1时,,View直接使用即可,如
1 $.getJSON('/Ajax/IsExist/', { Name: Name },
2 function (json) {
3 result = json;
4 });
5 if (result == true) {
6 alert("你添加的已存在,请重新添加");
7 document.getElementById("Name").focus();
8 return false;
9 }
2 function (json) {
3 result = json;
4 });
5 if (result == true) {
6 alert("你添加的已存在,请重新添加");
7 document.getElementById("Name").focus();
8 return false;
9 }
但MVC3,View使用时,需相应的修改成:result.Data而不能直接用result