在ASP.NET MVC中构建视图时,强类型HTML helpers非常有用。像@Html.TextBoxFor(m => m.FirstName)这样内置的Helper方法已经存在很长时间了,它们提供诸如视图编译时间检查、Razor支持等优点,并支持使用数据注释来自动配置重要的选项,如验证规则。

自从我们发布DevExtreme ASP.NET MVC控件以来,它们已经包含了一套HTML helper方法来帮助您完成设置DevExtreme编辑器的工作。 例如在这里,我们创建一个DevExtreme MVC DateBox控件,该控件将从模型绑定到OrderDate字段中:

@Html.DevExtreme().DateBoxFor(m => m.OrderDate)

更多的Lambda表达式

在下一个主要版本v17.2中,我们扩展了在HTML helpers中使用表达式的功能。已经添加了更多的lambda表达式到更多的小部件中,这允许使用它们来配置项目,如:

  • DataGrid and TreeList columns
  • DataGrid summaries
  • PivotGrid fields
  • Items of our Form control

因此,DataGrid控件现在可以使用以下语法来声明:

1
2
3
4
5
6
7
8
9
10
11
12
@(Html.DevExtreme().DataGrid<sale>()
.Columns(columns => {
columns.AddFor(m => m.CategoryName);
columns.AddFor(m => m.ProductName);
columns.AddFor(m => m.ProductSales);
})
.Summary(s => s.TotalItems(total => {
total
.AddFor(m => m.ProductSales)
.SummaryType(SummaryType.Sum);
}))
)</sale>

注意:DataGrid ()和AddFor调用的泛型类型参数配置列和总摘要,不使用任何字符串常量。

以前,该列将使用如下所示的字符串进行声明:columns.Add().DataField(“CategoryName”);. 由于下面列出的原因,新的lamdba表达式方法更好,使您的工作效率更高。

支持智能感知

使用lambda表达式最好的是您可以根据类型在Razor视图中获得IntelliSense:

数据注释

AddFor方法是一个非常好的功能,它推断有关该属性的有用信息,这些信息包括属性名称和数据类型。我们还处理模型的数据注释。例如如果Sale类的任何成员使用Display属性进行注释,则会自动将其分配为列标题:

1
2
3
4
5
6
7
8
9
10
public partial class Sale {
[Display(Name = "Category")]
public string CategoryName { getset; }
 
[Display(Name = "Product")]
public string ProductName { getset; }
 
[Display(Name = "Sales")]
public Nullable<decimal> ProductSales { getset; }
}</decimal>

更好的验证

如果您的数据是使用验证属性进行注释的,例如[Required],[StringLength],[Range]等,则DevExtreme MVC将遵循并将其应用于DataGrid或TreeList的列验证选项。 所以,在使用表达式时,会自动为您配置客户端验证。

Typed Form控件

新的强类型HTML helpers还能够实现'highly-requested'用户场景,例如“类型化表单控件”示例:

1
2
3
4
5
6
7
8
9
10
@(Html.DevExtreme().Form<employee>().Items(items => {
items.AddSimpleFor(m => m.FirstName);
items.AddSimpleFor(m => m.LastName);
 
items.AddGroup().Caption("Address").Items(addressItems => {
addressItems.AddSimpleFor(m => m.Address);
addressItems.AddSimpleFor(m => m.Region);
addressItems.AddSimpleFor(m => m.PostalCode);
});
}))</employee>

===============================================================

想要进一步了解如何DevExtreme ASP.NET MVC?

DevExpress v17.2即将发布,更多精彩预告请持续关注DevExpress中文网!

扫描关注DevExpress中文网微信公众号,及时获取最新动态及最新资讯

【DevExpress v17.2新功能预告】DevExtreme ASP.NET MVC新的强类型HTML Helpers的更多相关文章

  1. 【DevExpress v17.2新功能预告】增强ASP.NET GridView的功能

    在下一个主要版本v17.2中,我们将为DevExpress ASP.NET GridView添加一些优秀的新功能.在本文中为大家介绍的所有功能都可用于 GridView的ASP.NET WebForm ...

  2. 【DevExpress v17.2新功能预告】DevExpress ASP.NET Scheduler新的自适应功能

    自适应Web设计可以帮助您解决各种尺寸的屏幕问题,网站的自适应网页设计可帮助您解决用户使用不同大小屏幕显示数据的问题. 在v17.2中,我们最大化了ASP.NET Scheduler的视图和可视化元素 ...

  3. 【DevExpress v17.2新功能预告】DevExtreme TreeList

    在即将到来的v17.2中,您可以查看到DevExtremeHTML5 TreeList小部件的这些新功能. 1. 递归选择模式 TreeList将包括一个新的递归选择模式,您只需一次点击即可选择或取消 ...

  4. 【DevExpress v17.2新功能预告】改进DevExtreme编辑器

    DevExpress即将发布v17.2版本,在DevExtreme v17.2中,DevExtreme编辑器进行了一些改进. 除了dxScheduler,dxDataGrid,dxTreeList和d ...

  5. 【DevExpress v17.2新功能预告】增强ASP.NET TreeList

    本文主要为大家介绍在下一个主要版本v17.2中,DevExpress ASP.NET TreeList获得的一些重大改进.DevExpress ASP.NET TreeList和GridView控件在 ...

  6. 【DevExpress v17.2新功能预告】WinForms上的图表增强

    在WinForms Charts v17.2中,我们新增了一些有用的功能,开发人员和最终用户可能都会喜欢. 基于标准的过滤 Chart控件已经支持一系列的过滤,但是在这个版本中,我们用FilterCr ...

  7. 对于ASP.NET MVC中页面强类型的个人理解

    进入ASP.NET MVC学习 发现很多和winfrom不同的东西,但是利用的C#语言还是没有变化,更多的是利用了新的语言,html jquery ajax.....唉 心累,一本书一本书看的去 看完 ...

  8. DevExpress v17.2新版亮点—DevExtreme篇(三)

    用户界面套包DevExpress DevExtreme v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExtreme v17.2 的New Color Sche ...

  9. SimpleMembership,成员资格提供程序、 通用的提供者和新的 ASP.NET 4.5 Web 窗体和 ASP.NET MVC 4 模板

    ASP.NET MVC 4 互联网模板中添加一些新的. 非常有用的功能,构建 SimpleMembership.这些更改将添加一些很有特色,像很多更简单. 可扩展会员 API 和 OAuth 的支持. ...

随机推荐

  1. 01_re正则表达式

    正则表达式,是一个特殊的字符串, 是对一类字符串的描述 ( 怎么描述一类字符: 普通字符+元字符+重复)检测给定的字符串,是否和正则表达式描述的字符串相匹配 举例:1) 检查一串数字是否是电话号码2) ...

  2. HDU 6070 Dirt Ratio(分数规划+线段树)

    http://acm.hdu.edu.cn/showproblem.php?pid=6070 题意: 找出一个区间,使得(区间内不同数的个数/区间长度)的值最小,并输出该值. 思路: 因为是要求$\f ...

  3. [BZOJ]|[Ural] Formula 1-----插头DP入门

    1519. Formula 1 Time limit: 1.0 secondMemory limit: 64 MB Background Regardless of the fact, that Vo ...

  4. django 接口编写的配置

    一.修改settings文件 ALLOWED_HOSTS = ['*'] INSTALLED_APPS = [ 'corsheaders' ]    #加入该app 安装django-cors-hea ...

  5. [ios]MKMapView中使用MKPolyline画线

    参考:http://blog.sina.com.cn/s/blog_9e8867eb0101dt76.html 首先在MapView.h中 #import <MapKit/MapKit.h> ...

  6. [ios]Xcode常用快捷键

    参考:http://www.linuxidc.com/Linux/2012-08/67905.htm Xcode常用快捷键 隐藏xcode command+h退出xcode command+q关闭窗口 ...

  7. 音视频学习系列第(七)篇---MediaCodec的使用

    音视频系列 什么是MediaCodec MediaCodec是安卓官方提供的一套用于音视频编码和解码的API,该API是在安卓4.1(API 16)引入的,因此只能用于4.1以上的手机 MediaCo ...

  8. linux上python安装相关

    [CentOS上安装python2.7和ipython]1,安装依赖库yum install readline-devel 2,按装python2.7和ipython //使用ipython需要先安装 ...

  9. oralce表空间使用情况查询

    SELECT UPPER(F.TABLESPACE_NAME) TABLESPACE_NAME, -- 表空间名, D.TOT_GROOTTE_MB TOT_GROOTTE_MB, -- 表空间大小( ...

  10. 雷林鹏分享:Ruby 类和对象

    Ruby 类和对象 Ruby 是一种完美的面向对象编程语言.面向对象编程语言的特性包括: 数据封装 数据抽象 多态性 继承 这些特性将在 面向对象的 Ruby 中进行讨论. 一个面向对象的程序,涉及到 ...