[转载]ASP.NETMVC3RC的一些新特性 (2010.11.9发布版)

[转载]ASP.NETMVC3RC的一些新特性 (2010.11.9发布版) – 撞破南墙 – 博客园.

1控制Controller的SESSION

[ControllerSessionState(SessionStateBehavior.Disabled)]

//禁用SESSION

public class CoolController : Controller {

public ActionResult Index() {

object o = Session[“Key”]; // 触发异常

}

}

[ControllerSessionState(SessionStateBehavior.ReadOnly)]

public class CoolController : Controller {

public ActionResult Index() {

Session[“Key”] = “value”; // SESSION属于只读

}

}

2新的验证属性

2.1比较Compare

public class User {

[Required]

public string Password { get; set; }

[Required, Compare(“Password”)]

public string ComparePassword { get; set; }

}

2.2 控制客户端属性

UserName 属性被赋予UserNameAvailable,当username属于被编辑页面的时候,客户端验证将调用UserNameAvailable 方法

public class User {

[Remote(“UserNameAvailable”, “Users”)]

public string UserName { get; set; }

}

The following example shows the corresponding controller.

public class UsersController {

public bool UserNameAvailable(string username) {

return !MyRepository.UserNameExists(username);

}

}

2.3LabelFor和LabelForModel的新的重载函数

@Html.LabelFor(m => m.PropertyName, “Label Text”);

@Html.LabelForModel(“Label Text”);

3action可以使用缓存

当前时间: @DateTime.Now

被缓存时候的事件: @Html.Action(“GetDate”)

The GetDate action is annotated with the OutputCacheAttribute:

[OutputCache(Duration = 100, VaryByParam = “none”)]

public string GetDate() {

return DateTime.Now.ToString();

}

4″Add View” 的对话框变干净了。

不会跟以前一样把整个.NET FRAMEWORK 的类 都包含进去。

5 更小粒度的验证Granular Request Validation

跳过验证。

这次是粒度到了某个属性

public class BlogPostViewModel {

[SkipRequestValidation]

public string Description {get; set;}

}

之前的版本的粒度是整个函数

[HttpPost]

[ValidateInput(false)]

public ActionResult Edit(BlogPostViewModel post) {

// Save the post in the database

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏