这几天在练习下MVC中Ajax中视图与控制器之间传值问题,时不时有些写法错误,导致传值失败,特把成功传值实现方法写下。
Index.cshtml视图
<script type="text/javascript">
$(function () {
$('#tbx1').blur(function () {
//使用$.post等同与$.ajax中type:post
//$.post("/User/ReturnData", $("#tbx1").serialize(), function (data) { // alert(data); // $('#tbx2').val(data); //}); $.ajax({ type: "POST", url: "/User/ReturnData", //发送到UserController下的ReturnData方法中 data: { id: "11", test: $('#tbx1').val() }, //dataType: 'text', //服务器返回数据类型 success: function (data) { alert(data); $('#tbx2').val(data); }, error: function () { alert("不执行"); } }); }) }
</script>
<h2>Ajax测试</h2> <input type="text" id="tbx1" name="tbx1"/>至<input type="text" id="tbx2" />
public class PostData
{ public string id { get; set; } public string test { get; set; } }
UserController.cs
public string ReturnData(PostData dat)
{
//通过原始的Request.QueryString获取
//string id = System.Web.HttpContext.Current.Request.QueryString["id"];
//string data = System.Web.HttpContext.Current.Request.QueryString["test"];
//通过Request.Params获取
//string id = Request.Params["id"]; //string data = Request.Params["test"];
//通过模型绑定(要求表单中标签的Name属性的值和实体模型的属性一致)
string id = dat.id;
string test = dat.test;
return id + ":" + test;
}