在mvc中运通ajax
前端js
@{
ViewBag.Title = "index";
}
<script src="~/Scripts/jquery-3.4.1.js"></script>
<script type="text/javascript">
$(function () {
$.post("/Home/Def", {"name":"nnn"}, function (data) {
var jdd = $.parseJSON(data);
for (var i = 0; i < jdd.length; i++) {
$("div").append("<p>"+jdd[i].title+" </p><p>"+jdd[i].xinxi+"</p>")
}
})
})
</script>
<input type="button" name="name" id="btu1" value="asdasd" />
<div>
</div>
后端传数据(json)
public ActionResult Def() {
string name = Request["name"];//接收前端的值
LogEntities1 db = new LogEntities1();
book bk = new book();
var ss = from u in db.book
select u;//linq表达式
List<book> ls = new List<book>();
foreach (var item in ss)
{
ls.Add(new book() {
xinxi=item.xinxi,
money=item.money,
author=item.author
});
}
JavaScriptSerializer java = new JavaScriptSerializer();
string js= java.Serialize(ls);
return Content(js);//传值json
//如果出错或者出现序列化错误请加上 :
//db.Configuration.ProxyCreationEnabled = false;
}
效果:
普通传值
前端:
<form action="/Home/About" method="post">
用户名:<input type="text" name="name" value="" /><br />
密码:<input type="password" name="pwd" value="" />
<input type="submit" name="name" value="提交" />
</form>
c#后端:
public ActionResult About(string name , string pwd )
{
string s = name + pwd;
return Content(s);
}
//还可以用方法的重载,或者加上标记[htmlpost]都可以,原理是一样的
效果:
对比
其实这种方式对比下来,大家会感觉跟webfrom里面的一般处理程序和html一样,就是有一点不一样,就是路径,
/Home/About
控制器的名字Controller去掉加上方法名字,就是路径。