热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

10.MVC框架开发(Ajax应用)

1.MVC自带的Ajax应用,使用步骤:第一步,引入js框架<scriptsrc.Scriptsjquery-1.4.4.jstypetext

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(1, 10000);
                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.ReaderNamea> <span>发表于:@Model.Datespan>
        h3>
        @Model.Comment
    div>
div>

有错请留步指导


推荐阅读
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
author-avatar
小白家的世界
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有