【DevExpress v17.2新功能预告】DevExtreme ASP.NET MVC新的强类型HTML Helpers

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

DevExpress v17.2新版预告

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

@Html.DevExtreme().DateBoxFor(m => m.OrderDate)编辑器

更多的Lambda表达式

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

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

所以,DataGrid控件如今可使用如下语法来声明:spa

13d

2code

3orm

4blog

5ci

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:

DevExpress v17.2新版预告

数据注释

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>

DevExpress v17.2新版预告

更好的验证

若是您的数据是使用验证属性进行注释的,例如[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中文网微信

相关文章
相关标签/搜索