10.MVC框架开发(Ajax应用)
1.MVC自带的Ajax应用,
使用步骤:
第一步,引入js框架
<script src="../../Scripts/jquery-1.4.4.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
第二步,调用MVC里的Ajax方法
分情况
a.如果表单里有内容需要提交的,采用Ajax.BeginForm
b.如果只是一个超链接,用Ajax.ActionLink,比如我们要用Url传参的形式做一本图书删除的操作,Url地址如下:/Book/Delete/3,3是参数,采用的是这种url传参。
具体的写法,主要就是AjaxOptions它里面的属性值。
1) HttpMethod = "Post":表示的是ajax的请求方式,
2) UpdateTargetId=”界面中的div的id”:表示更新的内容放置的区域,
3) InsertionMode= InsertionMode.Replace:表示界面元素的更新方式,Replace表示全部替换,
4) OnSuccess:表示执行成功之后,所执行的JavaScript脚本,
5) Confirm:表示确定是否执行的文本,
6) OnFailure,表示ajax失败,所执行的JavaScript代码。
@using (Ajax.BeginForm("Comment", new AjaxOptions
{
HttpMethod = "Post",
UpdateTargetId = "updateComment",
InsertionMode = InsertionMode.Replace,
OnSuccess = "if($('#parView').length>0){alert('发表评论成功');}",
OnFailure = "alert('发表评论失败');"
}))
{
<div class="comm_answer">
<div id="div2">
<div class="total_comm">
<div class="comm_title">
<h2>
商品评论<span class="look_comm"></span></h2>
<input type="hidden" value="@ViewBag.bookid" name="hiddenBookid" />
</div>
<div class="comm_list">
<!-- 编写框(写评论)-->
<textarea id="pinglun" name="content" style="width: 99%; height: 100px;"></textarea>
<br />
<input type="submit" id="btnComment" value="提交评论" onclick="sendpinglun();" />
</div>
</div>
</div>
</div>
}
第三步,Action里面的视图返回,一般情况下我们都采用分部视图,分部视图的返回方法PartialView()方法,一般我们把分部视图创建到Shared文件夹里,比如我们创建的是OneComment.cshtml视图文件
Action里的代码如下:
[HttpPost]
public ActionResult OneComment()
{
//更新的时候需要获得图书id,评论内容,用户id
int bookid = Convert.ToInt32(Request.Form["hiddenBookid"]);
string comment = Request.Form["content"];
if (Session["User"] == null)
{
return JavaScript("alert('您还没有登陆');window.location.href='/User/Login';");
}
else
{
//获得用户登陆信息
MvcBookShop.Models.User users = Session["User"] as MvcBookShop.Models.User; Random ranDom = new Random();
int num = ranDom.Next(, );
ReaderComment reader = new ReaderComment
{
BookId = bookid,
ReaderName = users.LoginId + num,
Title = "好书",
Comment = comment,
Date = DateTime.Now
}; bookshop.ReaderComments.Add(reader);
bookshop.SaveChanges();
return PartialView("ShowComment", reader);//一个分部视图就有一个对应的模型,第二个参数reader是分部视图所对应的模型
}
}
View里代码:
@using (Ajax.BeginForm("OneComment", new AjaxOptions
{
HttpMethod = "Post",
UpdateTargetId = "updateComment",
InsertionMode = InsertionMode.InsertAfter,
OnSuccess = "if($('#parView').length>0){alert('发表评论成功');}",
OnFailure = "alert('发表评论失败')"
}))
{
<div class="comm_answer">
<div id="div2">
<div class="total_comm">
<div class="comm_title">
<h2>
商品评论<span class="look_comm"></span></h2>
<input type="hidden" value="@ViewBag.bookid" name="hiddenBookid" />
</div>
<div class="comm_list">
<!-- 编写框(写评论)-->
<textarea id="pinglun" name="content" style="width: 99%; height: 100px;"></textarea>
<br />
<input type="submit" id="btnComment" value="提交评论" onclick="sendpinglun();" />
</div>
</div>
</div>
</div>
}
视图界面代码
分部视图的代码:
@model MvcBookShop.Models.ReaderComment
<div id="parView">
<div class="comm_list">
<h3>
<img src="@Url.Content("~/Content/images/label_1.gif")" title="精彩评论" /><a href="#" target="_blank"
name="reviewDetail">@Model.ReaderName</a> <span>发表于:@Model.Date</span>
</h3>
@Model.Comment
</div>
</div>
有错请留步指导
10.MVC框架开发(Ajax应用)的更多相关文章
- ASP.NET MVC框架开发系列课程 (webcast视频下载)
课程讲师: 赵劼 MSDN特邀讲师 赵劼(网名“老赵”.英文名“Jeffrey Zhao”,技术博客为http://jeffreyzhao.cnblogs.com),微软最有价值专家(ASP.NET ...
- 2.MVC框架开发(视图开发----基础语法)
1.区别普通的html,在普通的html中不能将控制器里面的数据展示在html中. 在MVC框架中,它提供了一种视图模板(就是结合普通的html标签并能将控制器里传出来的数据进行显示) 视图模板特性: ...
- 5.MVC框架开发(强类型开发,控制器向界面传递数据的几种方法)
界面表单中的表单元素名字和数据库表的字段名相一一映射(需要哪个表的数据就是那个表的模型(Model)) 在View页面中可以指定页面从属于哪个模型 注:以上的关系可以通过MVC的强类型视图开发来解决我 ...
- 1.MVC框架开发(初识MVC)
1.约定大于配置 Content:存放静态文件(样式表.静态图片等) Controllers:存放控制器类 Models:存放数据模型文件 Scripts:存放脚本文件 Views:存放视图文件,里面 ...
- web框架开发-Ajax
Ajax简介 向服务器发送请求的4种方式 1.浏览器地址栏,默认get请求2.form表单: get请求 post请求3.a标签,默认get请求 4.Ajax 特点: 1 异步请求 2 局部刷新 方式 ...
- 了解MVC框架开发
版权声明:本文为博主原创文章,未经博主允许不得转载. 前言:本篇文章我们浅谈下MVC各个部分,模型(model)-视图(view)-控制器(controller), 以及路由. 对于使用MVC的好处大 ...
- 8.MVC框架开发(URL路由配置和URL路由传参空值处理)
1.ASP.NET和MVC的路由请求处理 1)ASP.NET的处理 请求---------响应请求(HttpModule)--------处理请求(HttpHandler)--------把请求的资源 ...
- 7.MVC框架开发(创建层级项目)
在一个项目比较大的时候,就会有多个层级项目 1)在项目中选定项目右建新建区域(新的层级项目),项目->右键->添加->区域,构成了一套独立的MVC的目录,这个目录包括Views,Co ...
- 4.MVC框架开发(母版页的应用、按钮导致的Action处理、从界面向控制器传数据和HtmlHelper控件的实现(注册的实现))
1.在视图里如何引入母版页 1)在视图里母版页都是放在View目录下面的Shared文件夹下面 2)母版页里的RenderBody()类似于ASP.NET里面的ContentPalceHolder占位 ...
随机推荐
- Hibernate中SQLite方言
package com.lain.util; /** * 2013-7-25 * chongzhen_zhao * SQLite方言 */ import java.sql.Types; import ...
- Making the impossible: 3 nodes intercontinental replication--转载
原文:http://www.percona.com/blog/2012/01/11/making-the-impossible-3-nodes-intercontinental-replication ...
- linux vi 撤销重做于前进后退--转
在vi中按u可以撤销一次操作 u 撤销上一步的操作Ctrl+r 恢复上一步被撤销的操作 注意:如果你输入“u”两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式了.重做如果你撤销得太多 ...
- ssh用root直接登录失败的问题
解决方法: 1) 以root身份,chmod +w /etc/ssh/sshd_config 2) vi /etc/ssh/sshd_config 3) 将PermitRootLogin no改成Pe ...
- Hibernate学习笔记--------2.一多|多多的CRUD
一.一多关系 例如用户(Tb_User)和订单(Tb_Order)之间,一个用户对应了多个订单,多个订单对应一个用户. 除了基本的配置外,需要在用户类(单方)中添加订单的集合同样需要get/set方法 ...
- 浅谈在实验室的一个作品---8x8x8光立方
在实验室学习51单片机之后,觉得是得做点东西,提高一下动手能力,光立方就成了自己忙碌的目标.买了1000个灯,准备好之后就开始了为期一周的焊接, 一周之后就是这个样子啦.... 之后就进行了电路板的焊 ...
- Hive over HBase和Hive over HDFS性能比较分析
http://superlxw1234.iteye.com/blog/2008274 环境配置: hadoop-2.0.0-cdh4.3.0 (4 nodes, 24G mem/node) hbase ...
- 【转】关于C#使用Excel的数据透视表的例子
收到消息,下星期又有导出 Excel 报表的代码要写.心想,不就是 OleDb 先 CREATE 表, 然后 INSERT 么?都是体力活啊...... 结果拿到纸张的报表,我就悲剧了.报表的结构,像 ...
- android基本知识(一)
今天开始更新一下android的基本知识,下面是敲代码遇到的问题. 1)我们来谈谈android.intent.category.DEFAULT的用途. 在谈这个tag的用途之前,读者要明白什 ...
- sql的游标使用(转)
游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的.而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服. 正常面向集合的思维方式是: ...