我们知道使用MVC的一个很重的的用途就是把Controller和View之间进行解耦,通过控制器来调用不同的视图,这就注定了Controller和View之间的传值是一个很重的知识点,这篇博文主要解释一下View向Controller提交数据的几种形式,认识有限,有不足的地方请各位博友能够给完善。

一、通过Json数据

方法一:使用$.getJSON

  1. //方式一:根据页码 异步请求 数据
  2. function loadPageList(pageIndex) {
  3. $.getJSON("/Stu/List/" + pageIndex, null, function (jsonData) {
  4. if (jsonData.Statu == "ok") {
  5. $("#tbList tr:gt(0)").remove();
  6. $("#trTemp").tmpl(jsonData.Data.PagedData).appendTo("#tbList");
  7. //生成页码条
  8. makePageBar(loadPageList, document.getElementById("pageBar"), jsonData.Data.PageIndex, jsonData.Data.PageCount, 2, jsonData.Data.RowCount);
  9. }
  10. });
  11. }

方法二:使用$.get

  1. //方式二:根据页码 异步请求 数据
  2. function loadPageList(pageIndex) {
  3. $.get("/Stu/List/" + pageIndex, null, function (jsonData) {
  4. if (jsonData.Statu == "ok") {
  5. $("#tbList tr:gt(0)").remove();
  6. $("#trTemp").tmpl(jsonData.Data.PagedData).appendTo("#tbList");
  7. //生成页码条
  8. makePageBar(loadPageList, document.getElementById("pageBar"), jsonData.Data.PageIndex, jsonData.Data.PageCount, 2, jsonData.Data.RowCount);
  9. }
  10. }, "json");
  11. }

上面这两种方式的到的结果是没有区别的,如果使用$.getJSON,相当于直接指明传递的数据为Json格式;如果使用$.get,则需要在最后加上参数类型"json"即可。

 二、通过From表单

方法一:使用Ajax.BeginForm

  1. <!-------------- 添加对话框--开始----------------------------------------->
  2. <div id="addDiv">
  3. @using (Ajax.BeginForm("Add", new AjaxOptions() { OnSuccess = "afterAdd" }))
  4. {
  5. <table>
  6. <tr>
  7. <td>系列名称:</td>
  8. <td>
  9. @Html.TextBox("SerialName")
  10. </td>
  11. </tr>
  12. </table>
  13. }
  14. </div>

其中,"Add"是该表单要提交到的Action的名字,OnSuccess="afterAdd"是该表单提交后要执行的js事件,然后再js代码中编写让表单提交的命令即可。

  1. //让表单提交
  2. $("#addDiv form").submit();

方法二:使用<form></form>

  1. <!--导入Word-->
  2. <div id="importDiv" style="display: none">
  3. <form id="ff" action="/NotifyManage/ImportWord" method="post" enctype="multipart/form-data">
  4. <div style="margin-bottom: 20px">
  5. <input id="FileUpload" type="file" name="files" data-options="prompt:'请选择一个文件...'" />
  6. </div>
  7. </form>
  8. </div>

然后,使用easyui的jquery提交如下:

  1. $('#ff').form('submit', {
  2. url: "/NotifyManage/ImportWord/",
  3. onSubmit: function () {
  4. // do some check
  5. // return false to prevent submit;
  6. },
  7. success: function (data) {
  8. $("#importDiv").dialog("close");
  9. }
  10. });

在这里,有一点需要注意的是,easyui中form提交的url是无法传参的,如果你想通过url传参的话,就需要另外一种形式了。

  1. var fileName = document.getElementById("file").value;
  2. $('#add').form('submit');
  3. $.post("/NotifyManage/Add",
  4. { fileName: fileName },
  5. function (data) {
  6. if (data == "ok") {
  7. //关闭对话框,刷新表
  8. $("#addDiv").dialog("close");
  9. //initTable();
  10. $('#tt').datagrid("reload");
  11. } else {
  12. $.messager.alert("提示消息", data);
  13. }
  14. });

   三、通过String字符串

方法一:提交单个字符串

  1. function Delete(index) {
  2. var id = $('#tt').datagrid("getRows")[index].ID;
  3. $.messager.confirm('确认', '您确定要删除?', function (r) {
  4. if (r) {
  5. $.post("/Administrator/Del"+id, function (data) {
  6. if (data == "ok") {
  7. //刷新表格,去掉选中状态的 那些行。
  8. $('#tt').datagrid("reload");
  9. $('#tt').datagrid("clearSelections");
  10. } else {
  11. $.messager.alert("删除失败~~", data);
  12. }
  13. });
  14. }
  15. });
  16. }

方法二:提交多个字符串

  1. //确认设置互评信息按钮事件
  2. function OK() {
  3. //①取得权重的值ID
  4. var weightID = $('#cc').combobox('getValue');
  5. //②获取评论人ID
  6. var rows = $('#left').datagrid("getRows");
  7. var evaluaterIDs = "";
  8. for (var i = 0; i < rows.length; i++) {
  9. evaluaterIDs += rows[i].ID + ",";
  10. }
  11. evaluaterIDs = evaluaterIDs.substr(0, evaluaterIDs.length - 1);
  12. //③获取被评论人ID
  13. var rows = $('#right').datagrid("getRows");
  14. var criticsIDs = "";
  15. for (var i = 0; i < rows.length; i++) {
  16. criticsIDs += rows[i].ID + ",";
  17. }
  18. criticsIDs = criticsIDs.substr(0, criticsIDs.length - 1);
  19. //④提交到后台
  20. $.post("/SettingEvaluation/SettingEvaluation",
  21. { wid: weightID, eids: evaluaterIDs, cids: criticsIDs });
  22. }

提交字符串实际上是根据路由地址中的格式匹配的,提交的格式要和路由中设置的保持一致。

ASP.NET MVC View向Controller提交数据的更多相关文章

  1. ASP.NET MVC View向Controller传值方式总结

    1:QueryString传值1)也可以使用new{}来为form的action增加querystring2)在controler里使用Request.QueryString["word&q ...

  2. 解析ASP.NET Mvc开发之删除修改数据

    目录: 1)从明源动力到创新工场这一路走来 2)解析ASP.NET WebForm和Mvc开发的区别 3)解析ASP.NET Mvc开发之查询数据实例 4)解析ASP.NET Mvc开发之EF延迟加载 ...

  3. 解析ASP.NET Mvc开发之删除修改数据 分类: ASP.NET 2014-01-04 23:41 3203人阅读 评论(2) 收藏

    目录: 从明源动力到创新工场这一路走来 解析ASP.NET WebForm和Mvc开发的区别 解析ASP.NET 和Mvc开发之查询数据实例 解析ASP.NET Mvc开发之EF延迟加载 ------ ...

  4. 【ASP.NET MVC系列】浅谈数据注解和验证

    [ASP.NET MVC系列]浅谈数据注解和验证   [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google C ...

  5. [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序读取相关数据

    这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第七篇:为ASP.NET MVC应用程序 ...

  6. [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序更新相关数据

    这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第八篇:为ASP.NET MVC应用程序 ...

  7. ASP.NET MVC 3.0 Controller基础

    ASP.NET MVC 3.0 Controller基础   1.Controller类与方法 Controller(控制器)是ASP.NET MVC的核心,负责处理浏览器请求,并作出响应.Cotro ...

  8. ASP.Net MVC View

    ASP.Net MVC View(视图)   View视图职责是向用户提供界面.负责根据提供的模型数据,生成准备提供给用户的格式界面. 支持多种视图引擎(Razor和ASPX视图引擎是官方默认给出的, ...

  9. ASP.NET MVC应用程序更新相关数据

    为ASP.NET MVC应用程序更新相关数据 这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译, ...

随机推荐

  1. Redis集合相关命令

    1.无序集合集合的特性:①确定性②互异性③无序性redis的set是string类型的无序集合set元素最大可以包含(2^32-1)个元素 sadd key value1....valueN 将将元素 ...

  2. Users is not mapped(Hibernate实体类采用注解)

    今天做简单的登陆验证web应用时,用HQL语句查询数据表时 总是出现Users is not mapped [from Users u where u.username=? and u.passwor ...

  3. js 对象类型 (对象的属性 ,对象的方法) this 关键字

    $(function () { var observation = { init: function () { this.render();//断点:this bind :function() che ...

  4. jquery学习笔记2——jq效果

    一.显示隐藏: 可以使用show()和hide()方法来显示隐藏: $("#hide").click(function(){ $("p").hide(); }) ...

  5. scala集合和高级函数操作

    scala常用函数操作 reduceLeft   是将集合的元素从左向右进行所需要的相应操作,图以减法为例展示,表达的算法是 : 1-2-3-4-5 例: (1 to 5).reduceLeft(_ ...

  6. (一)html之基本结构

    一:HTML基本结构 1.1 HTML文档结构 1.1.1 外层结构 <!DOCTYPE HTML> <html> </html> DOCTYPE元素用于告诉浏览器 ...

  7. CSS3的基础知识点

    面临找工作之际,又将CSS3的基础知识撸了一把,做了相应的笔记,主要是方便自己查阅,参考的是W3C的知识.    1.CSS背景 (1).background-size 属性 background-s ...

  8. .parents() 与 .parent()对比

    今天使用jQuery时候需要用到parents()方法,css()方法的使用 现在只是知道可以取到父级DOM节点,研究是否可以通过选取class名或者id名进行选取. 取到父级DOM节点 $(e.sr ...

  9. PHP关于数组缓存JSON、serialize、var_export的说明

    1.JSONJSON缓存变量主要是使用json_encode和json_decode函数,其中json_encode可以将变量变成文本格式存储到文件. // Store cache file_put_ ...

  10. 深度探索C++对象模型之C++对象模型笔记

    0.菜鸟觉得,在看这本书的时候最好切换角色,把自己的思维转换成编译器开发者,去考虑问题,这样会容易理解些.(当然这样很难,就想着自己要解决什么样的问题好了) 1.在C++中,类的数据成员有两种:静态和 ...