Json Ajax 在Mvc中的简单运用
2010-05-28 00:17
453 查看
闲来无事,把以前写的Ajax及Json在 Mvc1.0 及2.0 中的运用写下来,供大家分享
Ajax及Json在Mvc中主要用于控件联动,如选择班级时,自动列出该班级下的学生
1、建立一个Mvc1.0项目,添加对DB.dll的引用
2、添加StudentController,输入以下代码
DB.Entity.StudentDBEntities context = new DB.Entity.StudentDBEntities();
public ActionResult JsonTest()
{
ViewData["Classes"] = context.Classes;
return View();
}
3、添加AjaxRequestController,输入以下代码
public JsonResult GetStudents(int classesId)
{
using (DB.Entity.StudentDBEntities context = new DB.Entity.StudentDBEntities())
{
return this.Json(context.Students.Where(row=>row.Classes.ClassesId==classesId)
.Select(row=> new {id=row.StudentId,name=row.StudentName}).ToList());
}
}
4、添加StudentController 下JsonTest 对应的视图,并输入以下代码
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script src="<%=VirtualPathUtility.ToAbsolute("~/Scripts/jquery-1.3.2.js") %>" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function ResetStudents() {
var Classes = document.getElementById("Classes");
var path = "<%=HttpContext.Current.Request.ApplicationPath %>";
if (path != "/")
path = path + "/";
$.post(path + "AjaxRequest/GetStudents", { classesId: Classes.value }, ResetStudentsComplete);
}
function ResetStudentsComplete(jsonValues) {
var control = document.getElementById("Students");
var newOpt;
control.innerHTML = "";
var myjsonValues = eval("(" + jsonValues + ")");//在MVC1.0中,需要进行此转换,在Mvc2.0中已经不需要此转换
control.options.add(new Option("所有", ""));
for (var i = 0; i < myjsonValues.length; i++) {
newOpt = new Option(myjsonValues[i].name, myjsonValues[i].id);
control.options.add(newOpt);
}
}
</script>
<% IEnumerable<DB.Entity.Classes> classes = ViewData["Classes"] as IEnumerable<DB.Entity.Classes>; %>
<select name="Classes" id="Classes" onchange="ResetStudents()">
<option value="">所有</option>
<%
string classStr = "";
foreach (var item in classes)
{
classStr += string.Format(" <option value=/"{0}/">{1}</option>", item.ClassesId, item.ClassesName);
} %>
<%=classStr %>
</select>
<select name="Students" id="Students">
<option value="">所有</option>
</select>
</asp:Content>
4、调试运行,选择,第一个班级,便会列出该班级下的学生,如图:
选择第二个班级,则会重新累出第二个班级下的学生,如图:
Ajax及Json在Mvc中主要用于控件联动,如选择班级时,自动列出该班级下的学生
1、建立一个Mvc1.0项目,添加对DB.dll的引用
2、添加StudentController,输入以下代码
DB.Entity.StudentDBEntities context = new DB.Entity.StudentDBEntities();
public ActionResult JsonTest()
{
ViewData["Classes"] = context.Classes;
return View();
}
3、添加AjaxRequestController,输入以下代码
public JsonResult GetStudents(int classesId)
{
using (DB.Entity.StudentDBEntities context = new DB.Entity.StudentDBEntities())
{
return this.Json(context.Students.Where(row=>row.Classes.ClassesId==classesId)
.Select(row=> new {id=row.StudentId,name=row.StudentName}).ToList());
}
}
4、添加StudentController 下JsonTest 对应的视图,并输入以下代码
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script src="<%=VirtualPathUtility.ToAbsolute("~/Scripts/jquery-1.3.2.js") %>" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function ResetStudents() {
var Classes = document.getElementById("Classes");
var path = "<%=HttpContext.Current.Request.ApplicationPath %>";
if (path != "/")
path = path + "/";
$.post(path + "AjaxRequest/GetStudents", { classesId: Classes.value }, ResetStudentsComplete);
}
function ResetStudentsComplete(jsonValues) {
var control = document.getElementById("Students");
var newOpt;
control.innerHTML = "";
var myjsonValues = eval("(" + jsonValues + ")");//在MVC1.0中,需要进行此转换,在Mvc2.0中已经不需要此转换
control.options.add(new Option("所有", ""));
for (var i = 0; i < myjsonValues.length; i++) {
newOpt = new Option(myjsonValues[i].name, myjsonValues[i].id);
control.options.add(newOpt);
}
}
</script>
<% IEnumerable<DB.Entity.Classes> classes = ViewData["Classes"] as IEnumerable<DB.Entity.Classes>; %>
<select name="Classes" id="Classes" onchange="ResetStudents()">
<option value="">所有</option>
<%
string classStr = "";
foreach (var item in classes)
{
classStr += string.Format(" <option value=/"{0}/">{1}</option>", item.ClassesId, item.ClassesName);
} %>
<%=classStr %>
</select>
<select name="Students" id="Students">
<option value="">所有</option>
</select>
</asp:Content>
4、调试运行,选择,第一个班级,便会列出该班级下的学生,如图:
选择第二个班级,则会重新累出第二个班级下的学生,如图:
相关文章推荐
- JSON 在Ajax数据交换中的简单运用
- JSON 在Ajax数据交换中的简单运用
- Asp.net Mvc Ajax JsonResult简单使用
- Asp.net Mvc Ajax JsonResult简单使用
- Jquery+ajax+springMVC返回json的运用方法
- MVC中使用ajax和json传递数据简单示例
- Asp.net Mvc Ajax JsonResult简单使用
- Asp.net Mvc Ajax JsonResult简单使用
- ASP.NET中MVC使用AJAX调用JsonResult方法并返回自定义错误信息
- ckeditor 自己写的一个简单的image上传js 运用iframe的ajax上传
- ajax简单获取json数据
- json+ajax 在前后台的简单交互
- json和ajax简单例子
- 关于echarts和ajax的简单运用
- json 字符串转对象 springmvc +mybatis +ajax
- 简单理解jQuery中$.getJSON、$.get、$.post、$.ajax用法
- ajax与json 获取数据并在前台使用简单实例
- asp.net mvc框架中,ajax传递json对象,并自动转换成参数对象的方法
- mvc 中 JSON,ajax
- springmvc + json + js + ajax 数据交互