您现在的位置:首页 >> Asp.NET >> 内容

ASP.NET MVC View向Controller提交数据

时间:2015-1-12 11:15:12 点击:

  核心提示:我们知道使用MVC的一个很重的的用途就是把Controller和View之间进行解耦,通过控制器来调用不同的视图,这就注定了Controller和View之间的传值是一个很重的知识点,这篇博文主要解释...

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

 

一、通过Json数据

 

方法一:使用$.getJSON

 

?
1
2
3
4
5
6
7
8
9
10
11
//方式一:根据页码 异步请求 数据
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

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
//方式二:根据页码 异步请求 数据
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-------------- 添加对话框--开始----------------------------------------->
<div id="addDiv">
    @using (Ajax.BeginForm("Add", new AjaxOptions() { OnSuccess = "afterAdd" }))
    {
    <table>
        <tbody><tr>
            <td>系列名称:</td>
            <td>
                @Html.TextBox("SerialName")
            </td>
        </tr>
 
    </tbody></table>
    }
 
</div>
其中,"Add"是该表单要提交到的Action的名字,OnSuccess="afterAdd"是该表单提交后要执行的js事件,然后再js代码中编写让表单提交的命令即可。

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

方法二:使用

?
1
2
3
4
5
6
7
8
<!--导入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提交如下:

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

三、通过String字符串

 

方法一:提交单个字符串

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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);
                }
            });
        }
    });
}

方法二:提交多个字符串

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//确认设置互评信息按钮事件
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 });
    
}
提交字符串实际上是根据路由地址中的格式匹配的,提交的格式要和路由中设置的保持一致。

总结:

刚接触这部分内容的时候,感觉很凌乱,总结粘贴复制别人的代码,在学习的过程中遇到不会的知识点通过查询easyui帮助文档或者自己思考去解决,思路一点一点的清晰,答案也就一步一步地出来了。有一点感触就是,还是在项目中学习到的东西比较牢靠,因为有亲自动手去实践,动脑去思考;同时,在项目中也培养了我们的细心和耐心,在解决问题中渐渐成长。

作者:不详 来源:网络
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 青春网络编程技术(www.qcfupo.com) © 2020 版权所有 All Rights Reserved.
  • Powered by qcfupo! V3.0sp1
  • 百度友情链接: 百家乐[www.chinawestnews.net/aomenbaijiale/] 赌博网[www.chinawestnews.net/amdbwz/] 海立方[www.bjl.gov.cn/bjgylc/] 娱乐城[www.gtxrmzf.gov.cn/mapai/] 娱乐城[www.hfsf.gov.cn/yfgj/] 威尼斯人[www.hllinkou.gov.cn/baijile/] 澳门威尼斯[www.jjwgj.gov.cn/wnsr/] 888真人[www.lagm.gov.cn/888zhenren/] 百乐坊[www.laoling.gov.cn/blfylc/] 现金网[www.longyu.gov.cn/xjw/] 百家乐[www.chinawestnews.net/ambjl/] 新葡京娱乐场[www.sjzedu.gov.cn/jsylc/] 时时彩[www.snjw.gov.cn/ssc/] 赌博[www.chinawestnews.net/aomendubo/]