ASP.NET MVC View向Controller提交数据
我们知道使用MVC的一个很重的的用途就是把Controller和View之间进行解耦,通过控制器来调用不同的视图,这就注定了Controller和View之间的传值是一个很重的知识点,这篇博文主要解释一下View向Controller提交数据的几种形式,认识有限,有不足的地方请各位博友能够给完善。
一、通过Json数据
方法一:使用$.getJSON
- //方式一:根据页码 异步请求 数据
- function loadPageList(pageIndex) {
- $.getJSON("/Stu/List/" + pageIndex, null, function (jsonData) {
- if (jsonData.Statu == "ok") {
- $("#tbList tr:gt(0)").remove();
- $("#trTemp").tmpl(jsonData.Data.PagedData).appendTo("#tbList");
- //生成页码条
- makePageBar(loadPageList, document.getElementById("pageBar"), jsonData.Data.PageIndex, jsonData.Data.PageCount, 2, jsonData.Data.RowCount);
- }
- });
- }
方法二:使用$.get
- //方式二:根据页码 异步请求 数据
- function loadPageList(pageIndex) {
- $.get("/Stu/List/" + pageIndex, null, function (jsonData) {
- if (jsonData.Statu == "ok") {
- $("#tbList tr:gt(0)").remove();
- $("#trTemp").tmpl(jsonData.Data.PagedData).appendTo("#tbList");
- //生成页码条
- makePageBar(loadPageList, document.getElementById("pageBar"), jsonData.Data.PageIndex, jsonData.Data.PageCount, 2, jsonData.Data.RowCount);
- }
- }, "json");
- }
上面这两种方式的到的结果是没有区别的,如果使用$.getJSON,相当于直接指明传递的数据为Json格式;如果使用$.get,则需要在最后加上参数类型"json"即可。
二、通过From表单
方法一:使用Ajax.BeginForm
- <!-------------- 添加对话框--开始----------------------------------------->
- <div id="addDiv">
- @using (Ajax.BeginForm("Add", new AjaxOptions() { OnSuccess = "afterAdd" }))
- {
- <table>
- <tr>
- <td>系列名称:</td>
- <td>
- @Html.TextBox("SerialName")
- </td>
- </tr>
- </table>
- }
- </div>
其中,"Add"是该表单要提交到的Action的名字,OnSuccess="afterAdd"是该表单提交后要执行的js事件,然后再js代码中编写让表单提交的命令即可。
- //让表单提交
- $("#addDiv form").submit();
方法二:使用<form></form>
- <!--导入Word-->
- <div id="importDiv" style="display: none">
- <form id="ff" action="/NotifyManage/ImportWord" method="post" enctype="multipart/form-data">
- <div style="margin-bottom: 20px">
- <input id="FileUpload" type="file" name="files" data-options="prompt:'请选择一个文件...'" />
- </div>
- </form>
- </div>
然后,使用easyui的jquery提交如下:
- $('#ff').form('submit', {
- url: "/NotifyManage/ImportWord/",
- onSubmit: function () {
- // do some check
- // return false to prevent submit;
- },
- success: function (data) {
- $("#importDiv").dialog("close");
- }
- });
在这里,有一点需要注意的是,easyui中form提交的url是无法传参的,如果你想通过url传参的话,就需要另外一种形式了。
- var fileName = document.getElementById("file").value;
- $('#add').form('submit');
- $.post("/NotifyManage/Add",
- { fileName: fileName },
- function (data) {
- if (data == "ok") {
- //关闭对话框,刷新表
- $("#addDiv").dialog("close");
- //initTable();
- $('#tt').datagrid("reload");
- } else {
- $.messager.alert("提示消息", data);
- }
- });
三、通过String字符串
方法一:提交单个字符串
- function Delete(index) {
- var id = $('#tt').datagrid("getRows")[index].ID;
- $.messager.confirm('确认', '您确定要删除?', function (r) {
- if (r) {
- $.post("/Administrator/Del"+id, function (data) {
- if (data == "ok") {
- //刷新表格,去掉选中状态的 那些行。
- $('#tt').datagrid("reload");
- $('#tt').datagrid("clearSelections");
- } else {
- $.messager.alert("删除失败~~", data);
- }
- });
- }
- });
- }
方法二:提交多个字符串
- //确认设置互评信息按钮事件
- function OK() {
- //①取得权重的值ID
- var weightID = $('#cc').combobox('getValue');
- //②获取评论人ID
- var rows = $('#left').datagrid("getRows");
- var evaluaterIDs = "";
- for (var i = 0; i < rows.length; i++) {
- evaluaterIDs += rows[i].ID + ",";
- }
- evaluaterIDs = evaluaterIDs.substr(0, evaluaterIDs.length - 1);
- //③获取被评论人ID
- var rows = $('#right').datagrid("getRows");
- var criticsIDs = "";
- for (var i = 0; i < rows.length; i++) {
- criticsIDs += rows[i].ID + ",";
- }
- criticsIDs = criticsIDs.substr(0, criticsIDs.length - 1);
- //④提交到后台
- $.post("/SettingEvaluation/SettingEvaluation",
- { wid: weightID, eids: evaluaterIDs, cids: criticsIDs });
- }
提交字符串实际上是根据路由地址中的格式匹配的,提交的格式要和路由中设置的保持一致。
ASP.NET MVC View向Controller提交数据的更多相关文章
- ASP.NET MVC View向Controller传值方式总结
1:QueryString传值1)也可以使用new{}来为form的action增加querystring2)在controler里使用Request.QueryString["word&q ...
- 解析ASP.NET Mvc开发之删除修改数据
目录: 1)从明源动力到创新工场这一路走来 2)解析ASP.NET WebForm和Mvc开发的区别 3)解析ASP.NET Mvc开发之查询数据实例 4)解析ASP.NET Mvc开发之EF延迟加载 ...
- 解析ASP.NET Mvc开发之删除修改数据 分类: ASP.NET 2014-01-04 23:41 3203人阅读 评论(2) 收藏
目录: 从明源动力到创新工场这一路走来 解析ASP.NET WebForm和Mvc开发的区别 解析ASP.NET 和Mvc开发之查询数据实例 解析ASP.NET Mvc开发之EF延迟加载 ------ ...
- 【ASP.NET MVC系列】浅谈数据注解和验证
[ASP.NET MVC系列]浅谈数据注解和验证 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google C ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序读取相关数据
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第七篇:为ASP.NET MVC应用程序 ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序更新相关数据
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第八篇:为ASP.NET MVC应用程序 ...
- ASP.NET MVC 3.0 Controller基础
ASP.NET MVC 3.0 Controller基础 1.Controller类与方法 Controller(控制器)是ASP.NET MVC的核心,负责处理浏览器请求,并作出响应.Cotro ...
- ASP.Net MVC View
ASP.Net MVC View(视图) View视图职责是向用户提供界面.负责根据提供的模型数据,生成准备提供给用户的格式界面. 支持多种视图引擎(Razor和ASPX视图引擎是官方默认给出的, ...
- ASP.NET MVC应用程序更新相关数据
为ASP.NET MVC应用程序更新相关数据 这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译, ...
随机推荐
- Redis集合相关命令
1.无序集合集合的特性:①确定性②互异性③无序性redis的set是string类型的无序集合set元素最大可以包含(2^32-1)个元素 sadd key value1....valueN 将将元素 ...
- Users is not mapped(Hibernate实体类采用注解)
今天做简单的登陆验证web应用时,用HQL语句查询数据表时 总是出现Users is not mapped [from Users u where u.username=? and u.passwor ...
- js 对象类型 (对象的属性 ,对象的方法) this 关键字
$(function () { var observation = { init: function () { this.render();//断点:this bind :function() che ...
- jquery学习笔记2——jq效果
一.显示隐藏: 可以使用show()和hide()方法来显示隐藏: $("#hide").click(function(){ $("p").hide(); }) ...
- scala集合和高级函数操作
scala常用函数操作 reduceLeft 是将集合的元素从左向右进行所需要的相应操作,图以减法为例展示,表达的算法是 : 1-2-3-4-5 例: (1 to 5).reduceLeft(_ ...
- (一)html之基本结构
一:HTML基本结构 1.1 HTML文档结构 1.1.1 外层结构 <!DOCTYPE HTML> <html> </html> DOCTYPE元素用于告诉浏览器 ...
- CSS3的基础知识点
面临找工作之际,又将CSS3的基础知识撸了一把,做了相应的笔记,主要是方便自己查阅,参考的是W3C的知识. 1.CSS背景 (1).background-size 属性 background-s ...
- .parents() 与 .parent()对比
今天使用jQuery时候需要用到parents()方法,css()方法的使用 现在只是知道可以取到父级DOM节点,研究是否可以通过选取class名或者id名进行选取. 取到父级DOM节点 $(e.sr ...
- PHP关于数组缓存JSON、serialize、var_export的说明
1.JSONJSON缓存变量主要是使用json_encode和json_decode函数,其中json_encode可以将变量变成文本格式存储到文件. // Store cache file_put_ ...
- 深度探索C++对象模型之C++对象模型笔记
0.菜鸟觉得,在看这本书的时候最好切换角色,把自己的思维转换成编译器开发者,去考虑问题,这样会容易理解些.(当然这样很难,就想着自己要解决什么样的问题好了) 1.在C++中,类的数据成员有两种:静态和 ...