一起谈.NET技术,ASP.NET MVC 2中使用jQuery UI控件详解

简介:   问:我想给我的ASP.NET MVC输入表单添加一个日期选择控件,但模型-视图-控制器(MVC)并没有提供这样的辅助方法,我该如何添加控件?  答:和ASP.NET Web表单不一样,MVC架构没有提供可以在设计面板中拖放的有状态的服务端控件,相反,MVC鼓励使用简单的HTML布局元素和基于数据的标签作为页面布局的要素,功能和最终的布局用客户端JavaScript和CSS样式表控制。

  问:我想给我的ASP.NET MVC输入表单添加一个日期选择控件,但模型-视图-控制器(MVC)并没有提供这样的辅助方法,我该如何添加控件?

  答:和ASP.NET Web表单不一样,MVC架构没有提供可以在设计面板中拖放的有状态的服务端控件,相反,MVC鼓励使用简单的HTML布局元素和基于数据的标签作为页面布局的要素,功能和最终的布局用客户端JavaScript和CSS样式表控制。

  MVC提供了一套基于HtmlHelper的扩展方法渲染大部分HTML标签,对于更复杂的功能,你需要自己编写HTML/JavaScript代码,购买第三方MVC控件包或使用开源的JavaScript库,目前最流行的开源JavaScript库是jQuery,当你在Visual Studio 2010中创建新的MVC 2项目时,实际上已经包括了jQuery核心库。

  jQuery架构一直遵循“不唐突JavaScript(Unobtrusive JavaScript)”的原则,它将HTML标签和添加客户端行为的JavaScript脚本分离开来,使用这个技术,开发人员可以使用简单的<div>,<span>和<table>标签及class属性创建页面布局,使用没有连接JavaScript事件的HTML列表,锚和基于表单的标签收集和显示数据,最终的页面将会很干净,在任何浏览器中都能显示,并且更适合搜索引擎机器人抓取。开发人员在文档对象模型(DOM)中给选中的控件添加jQuery脚本,并添加属性、事件和额外的标签,这个脚本创建具体的外观,对UI行为进行响应,执行动画和管理远程调用。

  jQuery库细分为核心库和其它插件库,包括一套UI小部件,核心库提供选择、设定样式、DOM操作和Ajax功能,jQuery库可以通过创建插件的形式进行扩展,jQuery UI是一套插件,它包括许多高级行为,如对话框、拖放和调整大小、主题部件,如自动完成,侧边栏,标签和日期选择器。

  jQuery UI插件

  如果要使用UI库,必须先从jQuery UI网站下载它,在网站主页你可以生成一个自定义版本下载,在准备好下载前,请注意选择你要使用的组件(默认选中了所有组件),组件版本(通常应该选择最新版本)和一个预配置的主题,然后下载并解压.zip文件,在解压后的文件夹下,你应该会看到多个文件夹,包括CSS和JS文件夹。

  将你下载的自定义主题添加到项目中,从CSS目录下将style文件夹复制到MVC项目的Content文件夹下,从js文件夹下将自定义jQuery UI脚本库复制到项目的Script文件夹下。我下载了最新的1.8.4版本,如果你想使用Web部署包部署你的项目,一定要添加style文件夹和JavaScript文件到你的Visual Studio项目中,否则你会发现程序在本地环境中可以运行,但到了生产环境就会失败。

  ASP.NET MVC架构由模型、视图和控制器组成,模型简单说就是使用DataAnnotation属性装饰过的数据类,所有URL都转换成调用控制器上的公共方法,控制器操作传递给它的数据,并创建视图需要的数据,视图的主要任务是渲染控制器创建的数据,视图和ASP.NET页面有点类似,但它后面没有代码,视图可以是强类型,这意味着它们期望建立一个数据对象控件传递给它们进行渲染,这个对象在整个视图中可以通过一个强类型模型变量访问,为了渲染基于表单的控件,如文本框和单选按钮变得更容易,视图使用了一套HtmlHelper方法,通过一个叫做Html的变量访问。

  这些扩展方法通常基于Model类和字段上的DataAnnotation属性访问模型的模型数据和元数据。将下面的脚本添加到视图页面的Master页面(默认是Site.Master),用你下载的jQuery UI库替换<your style here>,我这里使用“微软”风格。

  
  
< link href = " <%=Url.Content( " ~/ Content /< your style here >
/ jquery - ui - 1.8 . 4 .custom.css " )%> " rel = " stylesheet " type = " text/
css " />
< script type = " text/javascript " src = " <%=Url.Content( " ~/ Scripts /
jquery
- 1.4 . 1 .min.js " )%> " ></ script >
< script type = " text/javascript " src = " <%=Url.Content( " ~/ Scripts /
jquery
- ui - 1.8 . 4 .custom.min.js " )%> " >

  确保jQuery核心库(这里是jquery-1.4.1.min.js)的script标签出现在jQuery UI库的标签前,否则当你运行程序时,你会收到一个类似于“jQuery未定义”的脚本错误。
  为了给视图页面增加日历控件,首先使用HtmlHelper TextBox扩展方法给视图添加一个TextBox:

  
  
1 . <%= Html.TextBox( " TestDatePicker "
2 . , Model.TestDatePicker.ToString( " d " ),
3 . new { @class = " myDatePickerClass " }) %>

  所有获得代表一个C#类实例的Model变量的强类型视图页面通过控制器传递给视图,在这个例子中,Model指的是包含一个DateTime字符(TestDatePicker)的类,注意TextBox使用ToString()方法为TestDate-Picker字段设置了一个初始格式化的值,这是必需的,因为jQuery DatePicker控件只有当你在日历控件中选择了一个日期后才会应用它的dateFormat选项。

  接下来,向你的Master页面添加下面的jQuery脚本,myDatePickerClass类必须和添加到TextBox的类匹配。

  
  
1 . < script type = " text/javascript " >
2 . $(document).ready(
3 . function () {
4 . $( " .myDatePickerClass " ).datepicker({
5 . buttonImage: ' <%=Url.Content("~/Content/
6. images/calendar.gif")%>
' ,
7 . dateFormat: ' m/d/yy ' ,
8 . showOn: ' button ' ,
9 . buttonImageOnly: true
10 . })
11 . }
12 . );
13 . < / script>

日历控件

  打开页面,当你点击文本框右侧的日历图标时,将会看到一个如图1所示的日历控件,选择一个日期填充到文本框中,你也可以修改文本框中的日期,弹出的日历控件会做出相应的变化,注意jQuery不会允许你在文本框中输入一个无效的日期。

目录
相关文章
|
1月前
|
自然语言处理 物联网 图形学
.NET 技术凭借其独特的优势和特性,为开发者们提供了一种高效、可靠且富有创造力的开发体验
本文深入探讨了.NET技术的独特优势及其在多个领域的应用,包括企业级应用、Web应用、桌面应用、移动应用和游戏开发。通过强大的工具集、高效的代码管理、跨平台支持及稳定的性能,.NET为开发者提供了高效、可靠的开发体验,并面对技术更新和竞争压力,不断创新发展。
54 7
|
1月前
|
开发框架 安全 .NET
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱。它不仅加速了应用开发进程,提升了开发质量和可靠性,还促进了创新和业务发展,培养了专业人才和技术社区,为软件开发和数字化转型做出了重要贡献。
27 5
|
1月前
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
35 4
|
1月前
|
开发框架 .NET C#
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位。从企业应用到电子商务,再到移动开发,.NET 均展现出卓越性能,助力开发者提升效率与项目质量,推动行业持续发展。
32 4
|
1月前
|
机器学习/深度学习 人工智能 物联网
.NET 技术:引领未来开发潮流
.NET 技术以其跨平台兼容性、高效的开发体验、强大的性能表现和安全可靠的架构,成为引领未来开发潮流的重要力量。本文深入探讨了 .NET 的核心优势与特点,及其在企业级应用、移动开发、云计算、人工智能等领域的广泛应用,展示了其卓越的应用价值和未来发展前景。
61 5
|
1月前
|
机器学习/深度学习 人工智能 Cloud Native
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台。本文深入解析 .NET 的核心优势,探讨其在企业级应用、Web 开发及移动应用等领域的应用案例,并展望未来在人工智能、云原生等方面的发展趋势。
39 3
|
1月前
|
敏捷开发 缓存 中间件
.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素
本文深入探讨了.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素,并通过企业级应用和Web应用开发的实践案例,展示了如何在实际项目中应用这些模式,旨在为开发者提供有益的参考和指导。
25 3
|
1月前
|
开发框架 安全 Java
.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力
本文深入探讨了.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力。.NET不仅支持跨平台开发,具备出色的安全性和稳定性,还能与多种技术无缝集成,为企业级应用提供全面支持。
36 3
|
13天前
|
JavaScript
超炫酷UI效果的jQuery滑块插件
超炫酷UI效果的jQuery滑块插件
27 0
|
1月前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)

相关课程

更多

相关实验场景

更多