当前位置 > 首页 > Asp.net

ASP.NET MVC中 Jquery AJAX 获取数据利用MVC模型绑定实现输出

8/29/2012 10:45:00 AM来源:Asp.net

     在日常项目中我们经常使用ajax ,无论是webform 还是mvc ,jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。jquery ajax 为我们实现ajax提供了一些非常方便的实现ajax的方法。我们利用ajax返回到前台的json字符串,需要我们自己去处理解析,很多时候我们需要自己手动的去拼html 字符串 很麻烦,那么有没有简单的方法呢,在MVC中,提供了一种机制模型绑定。

     在ASP.net MVC中,使用了一种称之为“模型绑定”的机制,将模型对象与HTTP请求的数据通过Action方法的参数进行映射绑定,无论从简单的数据或者到复杂的数据结构,应付模型绑定的一切工作,MVC框架都能游刃有余。在ajax的应用中,我们如何利用这个特性呢,我们可以把数据通过模型绑定 把数据绑定到视图,然后再获取视图输出的字符串,直接输出即可。

我们首先定义一个ApplicationController 继承 Controller 。在ApplicationController中定义如下:

 1  public class ApplicationController : Controller 2     { 3         protected string RenderPartialViewToString(string viewName, object model) 4         { 5             if (string.IsNullOrEmpty(viewName)) 6                 viewName = ControllerContext.RouteData.GetRequiredString("action"); 7  8             ViewData.Model = model; 9 10             using (var sw = new StringWriter())11             {12                 ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);13                 var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);14                 viewResult.View.Render(viewContext, sw);15 16                 return sw.GetStringBuilder().ToString();17             }18         }19 20     }


我们只需要传入视图名称,和实体数据,就可以输出我们定义好格式的字符串。

定义控制器 继承 ApplicationController

 

 1  public class HomeController : ApplicationController 2     { 3         private static Users _usrs = new Users(); 4   5         public ActionResult Index() 6         { 7             return View(_usrs._usrList); 8         } 9 10         public ActionResult Create()11         {12             return View();13         }14 15         [HttpPost]16         public ActionResult Create(UserModel item)17         {18             _usrs.Create(item);19             return View();20         }21 22         public ActionResult Edit(string id)23         {24             return View(_usrs.GetUser(id));25         }26 27         [HttpPost]28         public ActionResult Edit(UserModel um)29         {


  • 实战网络编程系列-网络编程基础(二)

    7/12/2009 1:25:00 PM

    实战网络编程系列-网络编程基础(一) Normal 0 7.8 磅 0 2 false false fals

  • 风影ASP.NET基础教学 10 DetilsView

    8/29/2012 1:22:00 PM

    在许多情况下,常常需要深入一条记录进行研究,此时DetailsView控件就可以大显身手了。使用DetailsView控件可以逐一显示,分页、更新、插入或者删除其关联的数据源中的记录,但它不支持排序

  • Writing rich logging solution

    4/6/2009 12:21:00 AM

    Tests tell us if our software works as expected. But they tell us almost nothing about side effects

  • Cheap Wholesale Handbags Women

    10/16/2009 1:30:00 AM

    摘要: ZoundryDocumentThose clever marketing cheap wholesale handbags, who had learned by trial and e

  • On the way back from Mix 09

    3/22/2009 8:16:00 AM

    AT&T have kindly opened up their internet for the weekend (at Philly airport) which gives me a

  • IQCar的实现II——解题思路

    1/5/2010 9:32:00 PM

    阅读: 80 评论: 0 作者: 万仓一黍 发表于 2010-01-05 20:53 原文链接   上文简单介绍了IQCar游戏。接下来将描述用计算机如何求出它的解法。   学过数据

  • VS 2010–Fix for hang on debugging ASP.Net 3.5 Apps…

    8/27/2010 3:46:00 AM

    Just got this in an email from Microsoft: Greetings from Microsoft Connect! This notification w

  • Silverlight Map 矢量地图构建过程分析

    2/3/2010 11:25:00 AM

    阅读: 442 评论: 4 作者: 双宇 发表于 2010-02-02 20:13 原文链接 本文主要结合SQLSERVER2008的空间数据库的一些特性,讲解Silverlight在矢量

  • 签名功能发布

    8/25/2007 12:23:00 AM

    通过签名功能,你可以方便地在随笔中添加一些常用文字,比如:版权说明。 签名功能使用方法: 在使用签名之前,需要先添加签名,点击编辑器上的“维护签名”按钮

  • Visual Studio 2010 Beta 2 announced with Go Live License

    10/21/2009 2:30:00 AM

    Hi, Microsoft has announced the release of the Beta 2 of the Visual Studio 2010. MSDN Subscriber