asp.net MVC前台View页面向后台Controller控制器传递数据的几种

上一篇文章Asp.Net MVC中的@model与Model讲解了后台控制器如何向前台页面传递数据,,今天就接着为大家讲解前台View页面向后台Controller控制器传递数据的几种方式。这几种方式是我在实际中使用并总结的,如果那个地方说的不对或有不足之处,欢迎各位指出并给出建设性意见、共同学习。

1、异步方式

在实际项目开发中,我们经常需要异步获取一些信息,如用户是否登陆、用户状态、用户类型等内容。我们不可能再通过按钮之类的东西再向后台请求,这很麻烦也很浪费网络资源、造成服务器负载。使用异步方式就很方便了,加载页面时,我们只需要发一个异步请求就可以从后台获取到这些信息。异步方式主要有ajax、post、get三种

(1)ajax方式

/*判断用户是否已经登录*/$(function () {$.ajax({type: "post",url: "/MonthWin/Index/12",data:{"name":name,"sex":sex},dataType: 'JSON',success: function (result) {if (result == true) {isLogin = true;}else {isLogin = false;}}});})

(2)post方式

$.post(url, { "username": username, "province": province, "city": city, "branch": branch, "number": number, "bankName": bankName },function (result) {if (result == "1") {alert("保存成功");location.reload();}else {alert("保存失败");location.reload();}});

总结:异步方式实现起来也比较简单,当然这只是一方面。其最重要的一点就是可以回传值。我们可以根据后台传过来的值进行下一步的操作,同时减少了一次服务器请求,降低了网络负载。

2、表单方式

(1)post方式

<form onsubmit="layer.load('请求提交中')" action="/WithFunding/StartFunding/12" method="post"><input type="hidden" name="CategoryId" value="12" /><input type="hidden" name="accountMoney" value="@ViewBag.Account" /><input type="hidden" name="totalFreezeMoney" value="@ViewBag.totalFreezeMoney" /><input type="hidden" name="totalWithFunding" value="@ViewBag.totalWithFunding" /><input type="hidden" name="totalDepositMoney" value="@ViewBag.totalDepositMoney" /><input type="hidden" name="moneyDeposit" value="@ViewBag.moneyDeposit" /><input type="hidden" name="moneyWithfunding" value="@ViewBag.moneyWithfunding" /><input type="hidden" name="rateOpen" value="@ViewBag.rateOpenLine" /><input type="hidden" name="rateWarn" value="@ViewBag.rateWarn" /><input type="hidden" name="defaultManageMoney" value="@ViewBag.defaultManageMoney" id="manageMoney" /><input type="hidden" name="startTime" value="@ViewBag.startTime" /><input type="hidden" name="ManageFeeRate" value="@ViewBag.moneyRate" /><input type="hidden" name="days" id="days" /><input type="button" onclick="history.go(-1)" value="返回修改" class="btn2" /></form>总结:从上面的代码我们可以看到post传值方式可以传递的数据量几乎不受限制,如果需要大量的传值,post方式是一个不错的选择。

(2)get方式

表单提交的get方式也可以成为QueryString方式,就是简单的把要传递的数据放在Url之后。

<form onsubmit="layer.load('请求提交中')" action="/WithFunding/StartFunding/12?id=123" method="get"></form>

总结:不过get方式相比post的方式有很多不足:传递数据量有限制、不安全

当然在MVC中我们还可以通过HTML帮助器实现表单提交,在此不在累述,具体请参考:MVC学习系列-HTML帮助器的使用

3、Model数据存储模型方式

MVC 中的Model作为Controller和View之间交流的桥梁,当然也就可以在View和controller之间传递数据。该方式的实现主要分为以下三步:

(1)定义Model实体

public class Model    {        public string rtoNumber { set; get; }        public string approver { set; get; }        public string modifier { set; get; }        public string comment { set; get; }    }

(2)定义Html标签

<div id="container">        <table id="table">            <tr>                <td><label>RTONumber</label><input name="rtoNumber" /></td>                <td><label>Approver</label><input name="approver" /></td>                <td><label>Modifier</label><input name="modifier" /></td>                <td><label>Comment</label><textarea name="comment" cols="30" rows="4"></textarea></td>            </tr>        </table>        <input id="submit" type="button" value="submit"/></div>爱人,却不一定能够听懂。他们听见的,多是抱怨不休,心烦意乱。

asp.net MVC前台View页面向后台Controller控制器传递数据的几种

相关文章:

你感兴趣的文章:

标签云: