代码改变世界

ASP.NETMVC3RC的一些新特性 (2010.11.9发布版)

  撞破南墙  阅读(2620)  评论(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

编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· Vite CVE-2025-30208 安全漏洞
· 《HelloGitHub》第 108 期
· MQ 如何保证数据一致性?
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
点击右上角即可分享
微信分享提示