有几个特殊之处
1. MVC框架中包含了一个特殊的JSONActionResult,可以直接返回JSON对象,注意它的格式与之前的asmx和页面静态方法都不一样,它直接就是一个JSON对象
2. 服务端和客户端编程都相对简单了。服务器端无须明确序列化,而客户端也无须解析JSON字符串了,因为返回的结果本来就是一个JSON对象
第一部分:Controller中的设计
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- namespace MvcApplication1.Controllers
- {
- public class Employee
- {
- public int Id { get; set; }
- public string Name { get; set; }
- }
- [HandleError]
- public class HomeController : Controller
- {
- public ActionResult Index()
- {
- ViewData["Message"] = "Welcome to ASP.NET MVC!";
- return View();
- }
- public ActionResult About()
- {
- return View();
- }
- public ActionResult Employee() {
- return View();
- }
- [HttpPost]
- public ActionResult GetEmployee() {
- return Json(new Employee()
- {
- Id = 1,
- Name = "chenxizhang"
- });
- }
- }
- }
第二部分:View中的设计
- <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
- <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
- GetEmployee
- </asp:Content>
- <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
- <script src="../../Scripts/jquery-1.3.2-vsdoc.js" type="text/javascript"></script>
- <script type="text/javascript" language="javascript">
- $(function() {
- $("#bt").click(function() {
- $.ajax({
- type: "POST",
- contentType: "application/json",
- url: "http://localhost:44203/Home/GetEmployee",
- data: "{}",
- dataType: 'json',
- success: function(result) {
- alert(result.Id);
- }
- });
- });
- });
- </script>
- <h2>
- GetEmployee</h2>
- <input type="button" value="Invoke" id="bt" />
- <div id="info">
- </div>
- </asp:Content>