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

本文介绍如何在ASP.NET MVC中控制SESSION状态,并展示了多种模型验证属性的应用,包括比较验证、远程验证及如何利用LabelFor进行标签定制。此外,还介绍了如何缓存子Action的输出,以及对请求验证进行更细粒度的控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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");

3子action可以使用缓存

当前时间: @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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值