C#_MVC_ajax for form

在上一篇介绍MVC中的Ajax实现方法的时候,曾经提到了除了使用Ajax HTML Helper方式来实现之外,Jquery也是实现Ajax的另外一种方案。

通过get方法实现AJax请求

View

<script type="text/javascript">function GetTime() {$.get("Home/GetTime", function (response) {$("#myPnl").html(response);});return false;}
</script>
<div id="myPnl" style="width: 300px; height: 30px; border: 1px dotted silver;">
</div>
<a href="#" onclick="return GetTime();">Click Me</a>

Controller

public ActionResult GetTime()
{return Content(DateTime.Now.ToString());
}

通过post方法实现Form的Ajax提交

View

@model MvcAjax.Models.UserModel
@{
    ViewBag.Title = "AjaxForm";
}
<script type="text/javascript">$(document).ready(function () {$("form[action$='SaveUser']").submit(function () {$.post($(this).attr("action"), $(this).serialize(), function (response) {$("#myPnl").html(response);});return false;});});</script>
<div id="myPnl" style="width: 300px; height: 30px; border: 1px dotted silver;">
</div>
@using (Html.BeginForm("SaveUser", "Home"))
{<table><tr><td>@Html.LabelFor(m => m.UserName)</td><td>@Html.TextBoxFor(m => m.UserName)</td></tr><tr><td>@Html.LabelFor(m => m.Email)</td><td>@Html.TextBoxFor(m => m.Email)</td></tr><tr><td>@Html.LabelFor(m => m.Desc)</td><td>@Html.TextBoxFor(m => m.Desc)</td></tr><tr><td colspan="2"><input type="submit" value="Submit" /></td></tr></table>
} 

Model

using System.ComponentModel.DataAnnotations;namespace MvcAjax.Models
{public class UserModel{[Display(Name = "Username")]public string UserName { get; set; }[Display(Name = "Email")]public string Email { get; set; }[Display(Name = "Description")]public string Desc { get; set; }}
}

Controller

[HttpPost]
public ActionResult SaveUser(UserModel userModel)
{//Save User Code Here//......return Content("Save Complete!");
}   

以上代码实现了Jquery POST提交数据的方法。

通过查看以上两种Jquery方式的Ajax实现方法,和之前AJax HTML Helper比较可以发现其实Controller都是相同的。

采用Jquery方式提交数据的的主要实现方案就是通过Jquery的get或者post方法,发送请求到MVC的controller中,然后处理获取的response,更新到页面中。

注意点:

无论是使用超链接和form方式来提交请求,javascript的方法始终都有一个返回值false,用来防止超链接的跳转或者是form的实际提交。

这个地方就会出现一个疑问:

如果针对该页面禁止了Javascript脚本,那么该页面就是跳转或者是form就是提交,返回的ActionResult处理就会出现问题了。

这个时候就需要在Controller中判断该请求是否是Ajax请求,根据不同的情况返回不同的ActionResult:

[HttpPost]
public ActionResult SaveUser(UserModel userModel)
{//Save User Code Here//......if (Request.IsAjaxRequest())return Content("Save Complete!");elsereturn View();
}   

转载于:https://www.cnblogs.com/MarchThree/p/3720408.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经典面试题:聊一聊垃圾回收算法

关于垃圾回收算法的这道面试题&#xff0c;几乎是所有 3 年以上的 Java 面试中必问的题目&#xff0c;甚至有些好一点的公司会在校招时问到面试者。那么本文就系统的讲一下垃圾回收的算法&#xff0c;和 Hotspot 虚拟机执行垃圾回收的一些实现细节&#xff0c;比如安全点和安全…

错误:readline/readline.h:没有那个文件或目录解决方法

make linux在包含自 lua.h&#xff1a;16 的文件中&#xff0c;从 lua.c&#xff1a;15:luaconf.h:275:31: 错误&#xff1a;readline/readline.h&#xff1a;没有那个文件或目录luaconf.h:276:30: 错误&#xff1a;readline/history.h&#xff1a;没有那个文件或目录lua.c: In…

九、华为鸿蒙HarmonyOS应用开发之Java UI框架、常用Image组件使用

一、Image 二、Image组件实例测试 1.新建基于empty ability(Java)手机应用程序的ImageTest工程。运行出现如下结果 2.在Project窗口,打开“entry > src > main > resources > base > media”,添加4个图片至media文件夹下,以“pic1.jpg”、“pic2.jpg”、…

阿里面试,我挂在了第四轮……

可能每个技术人都有个阿里梦&#xff0c;我也不例外。最近准备跳槽&#xff0c;前一阵子在准备各种面试&#xff0c;也面了几个大厂&#xff0c;包括阿里。是的&#xff0c;最后我挂在了第四轮。这篇文章来总结一下我在阿里四轮的面试经历&#xff0c;希望能对读者有所启发。阿…

基于IP-PBX的VoIP系统解决方案

基于IP-PBX的VoIP系统解决方案目前&#xff0c;众多企业随着业务的扩张&#xff0c;开设了大量的分支机构&#xff0c;这样企业总分支机构以及分支机构之间的语音沟通是非常频繁&#xff0c;企业长途电话费用是企业经营成本中的一项巨大开支。现在互联网已非常普及&#xff0c;…

Python RSA加密与解密 公钥和私钥 读写pem文件

非对称加密算法: 文件加密需要公开密钥(publickey)和私有密钥(privatekey)。 接收方在发送消息前需要事先生成公钥和私钥,然后将公钥发送给发送方。发送放收到公钥后,将待发送数据用公钥加密,发送给接收方。接收到收到数据后,用私钥解密。 在这个过程中,公钥负责加密…

面试官:聊一下二分法

来源&#xff1a;cnblogs.com/luoxn28/p/5767571.html1、二分查找二分查找是一个基础的算法&#xff0c;也是面试中常考的一个知识点。二分查找就是将查找的键和子数组的中间键作比较&#xff0c;如果被查找的键小于中间键&#xff0c;就在左子数组继续查找&#xff1b;如果大于…

Delphi利用Windows GDI实现文字倾斜

2019独角兽企业重金招聘Python工程师标准>>> procedure TForm1.FormPaint(Sender: TObject);var FLogFont: tagLogFontW; hTempFont, hPrevFont: HFONT; //字体句柄 hTempDC: HDC; //设备描述表或图形设备句柄 TempString: string; //输出的文字begin FLogFont…

面试干货 | Java 能否自定义一个类叫 java.lang.System?

本文由读者 apdoer 投稿&#xff0c;apdoer 是一个极具钻研精神的 Java 猿&#xff0c;技术牛X头发茂盛! 博客地址&#xff1a;https://blog.csdn.net/m0_43452671缘起&#xff1a;一个面试题最近在上下班地铁刷博客,无意刷到一个面试题,号称很多程序员的烈士公墓&#xff1a;j…

mysql 数据库文件导入和导出、远程上传和下载数据库

1.打开数据库操作软件:Navicat Premium 15 中文版,登录测试连接! 2.打开本地mysql 数据库,新建数据库的名字必须和要导入的数据库名字一致。字符集和排 序规则按下图设置即可。

c++构造函数详解(转)

c构造函数的知识在各种c教材上已有介绍&#xff0c;不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法&#xff0c;故在此我根据自己的c编程经验总结了一下c中各种构造函数的特点&#xff0c;并附上例子&#xff0c;希望对初学者有所帮助。 …

经典面试题 | 讲一下垃圾回收器都有哪些?

垃圾回收器有哪些&#xff1f;是一个高频的面试题&#xff0c;那本文就详细来解答这个问题。因为不同的厂商&#xff08;IBM、Oracle&#xff09;&#xff0c;实现的垃圾回收器各不相同&#xff0c;而本文要讨论的是 Oracle 的 HotSpot 虚拟机所使用的垃圾回收器。常用垃圾回收…

十、华为鸿蒙HarmonyOS应用开发之Java UI框架、常用TabList组件使用

一、TabList和Tab 二、TabList组件实例测试 1.新建基于empty ability(Java

dotConnect for Oracle控件免费下载及使用方法

原文来自龙博方案网http://www.fanganwang.com/product/1330转载请注明出处dotConnect for Oracle完全基于ADO.NET方法&#xff0c;因此您完全可以采用标准ADO.NET数据提供的方法来使用它。是一款为Microsoft .NET Framework提供直接Oracle数据库连接的数据发生器控件。 具体功…

面试官:谈谈数据库连接池的原理

来源&#xff1a;https://dwz.cn/oUF6pKOW这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理&#xff0c;以及当下最流行的开源数据库连接池jar包。一、早期我们怎么进行数据库操作1、原理一般来说&#xff0c;Java应用程序访问数据库的过程是&#xff1a;①…

php调用twitter api

今天做了一个关于调用twitter api来同步twitter信息到自己网站的功能&#xff0c;虽然是比较简单的功能&#xff0c;着实花费了我不少时间。网上有很多关于twitter api调用的方法&#xff0c;我试了几个都没有成功&#xff0c;貌似需要Oauth验证&#xff0c;这个跟微信开发类似…

Python获取电脑CPU序列号、主板序列号、BIOS序列号、硬盘序列号列表、网卡MAC地址

python可以获取电脑主机的硬件信息,自己封装的一个类。 # -*- coding: utf-8 -*- import wmiclass HardwareInfo:def __init__(self):self.c = wmi.WMI()self.strCPUSn = "" # CPU序列号self.</

8种常见SQL错误用法,你犯过几个?

来源&#xff1a;https://yq.aliyun.com/articles/72501高考和端午小长假一溜烟的功夫就全过完了&#xff0c;新的一周&#xff0c;让我们迎着清晨的阳光&#xff0c;继续前行。1、LIMIT 语句分页查询是最常用的场景之一&#xff0c;但也通常也是最容易出问题的地方。比如对于下…

51单片机 16*64LED单红点阵屏驱动测试,上位机改字软件免费版

public.h #ifndef __PUBLIC_H__ #define __PUBLIC_H__#include "STC12C5A60S2.h" #include <intrins.h> #include <string.h>//包含memset函数#define UCHAR unsigned char #define UINT unsigned int #define TRUE 1 #define FALSE 0#define LEDON 0…

cocos2dx基础篇(2)——Win32移植到Android

【安装工具】JDKEclipse 或直接下一个 ADT集成开发工具SDKNDK9rADTCDT安装方法自行百度。【正文】1、由 Cocos2D-X 和 VS2010 环境配置——1 中提到的python方法&#xff0c;创建新项目。然后将你开发好的win项目相应的文件Classes和Resources文件夹里的东西分别拷贝到刚创建的…