快速业务通道

ASP.NET MVC案例教程(基于ASP.NET MVC beta)—第五篇:MVC整合Ajax

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

摘要

本文将从完成“输入数据验证”这个功能出发,逐渐展开ASP.NET MVC与Ajax结合的方法。首先,本文将使用ASP.NET MVC提供的同步方式完 成数据验证。而后,将分别结合ASP.NET AJAX和JQuery将这个功能重构成异步形式。

数据验证

在上一篇文章中,我们完成了发布公告的功能。但是从健壮性角度看,这个功能并不完善,因为一般情况下,我们输入的数据要符合一定的 约束条件,例如,在我们的例子中,我们至少不能将空字符串作为标题或内容吧。下面,我们来为程序加入数据验证功能,

ASP.NET MVC中提供了良好的数据验证实现支持,下面我们来看实现过程。首先,我们要修改一下Release.aspx视图,修改后的视图如下。

Release.aspx:

1<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Release.aspx.cs" Inherits="MVCDemo.Views.Announce.Release" %>
2<%@ Import Namespace="MVCDemo.Models.Entities" %>
3
4<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6<html xmlns="http://www.w3.org/1999/xhtml" >
7<head runat="server">
8  <title></title>
9</head>
10<body>
11   <% SelectList categories = ViewData["Categories"] as SelectList; %>
12  <div>
13     <h1>MVC公告发布系统——发布公告</h1>
14    <% Html.BeginForm ("DoRelease","Announce",FormMethod.Post); %>
15    <dl>
16      <dt>标 题:</dt>
17      <dd><%= Html.TextBox("Title") %></dd>
18       <dd><%= Html.ValidationMessage("TitleValidator") %></dd>
19      <dt>分类: </dt>
20      <dd><%= Html.DropDownList("Category",categories) %></dd>
21       <dd></dd>
22      <dt>内容:</dt>
23      <dd><%= Html.TextArea("Content") %></dd>
24      <dd><%= Html.ValidationMessage ("ContentValidator") %></dd>
25    </dl>
26    <input type="submit" value="发布" />
27    <% Html.EndForm(); %>
28  </div>
29</body>
30</html>

可以看到,并没有什么大的变动,只是多了两个Html.ValidationMessage方法。可以这样理解,这个方法相 当于产生一个span标签,而这个span就是要显示错误信息的地方。这个方法接收一个参数,用来指明其在Controller中的名字。如果你对这个 迷惑,不要紧,接下来看完Controller的代码,你就什么都清楚了。

AnnounceController.cs:

1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Web;
5using System.Web.Mvc;
6using System.Web.Mvc.Ajax;
7using MVCDemo.Models;
8using MVCDemo.Models.Interfaces;
9using MVCDemo.Models.Entities;
10
11namespace MVCDemo.Controllers
12{
13  public class AnnounceController : Controller
14  {
15    public ActionResult Release()
16    {
17      ICategoryService cServ = ServiceBuilder.BuildCate

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号