layui表单提交与ajax访问webapi
2021-06-10 02:04
YPE html>
标签:lse 单选 北京 重置 url 重要 toc 表单 标题
啊啊啊啊 这个东西实在很蛋疼啊 每次访问webapi就很老火 这里就一下 以后忘记的话就来查阅
不多说 直接开始
首先html页面 新建一个基于layui的form表单页面LayuiForm.cshtml(我的项目是基于mvc的 当然webform也是可以的 就不写了 个人习惯webform做前台的时候后台用一般处理程序.ashx来搭配)。
@{
Layout = null;
}
前台页面建好了 这里有一个很重要的一点 假如你的表单不指定他的提交方式的话(即method = "post"或者method="get") html默认的提交方式是get.
我们这里采用的是post方法 接下来 在webapi中新建方法接受参数。
后台方法:
public IHttpActionResult PostAddFormLearn(FormLearning f)
{
try
{
LearningEntities db = new LearningEntities();
db.FormLearning.Add(f);
db.SaveChanges();
return Ok(new { msg = "OK" });
}
catch (Exception ex)
{
return Ok(new { msg=ex.Message});
}
finally
{
}
}
这里有个需要注意的点 ,在访问webapi接口的时候 如果访问post 而且只有一个参数的情况下 需要用到frombody关键字。
对访问webapi我做了几个例子放在这里方便对比
第一种:不带参数的get 请求。
前台:
$("#test1").click(function () {
$.ajax({
type: "get",
url: "/api/WebApi/getList",
success: function (responseText) {
alert(responseText);
}
});
});
后台:
public string getList()
{
return "ok";
}
第二种:一个参数的get请求
前台:
$("#test2").click(function () {
var parm = 1;
$.ajax({
type: "get",
url: "/api/WebApi/getListWithOneParm",
data: { id: parm },
success: function (responseText) {
alert(responseText);
}
});
});
后台:
public string getListWithOneParm(int id)
{
return id.ToString();
}
第三种:多个参数的get请求
前台:
$("#test3").click(function () {
var parm = { "Name": "张丽", "Sex": "男" };
$.ajax({
type: "get",
url: "/api/WebApi/getListWithThreeParm",
data: parm,
success: function (responseText) {
alert(responseText);
}
});
});
后台:
public string getListWithThreeParm(string Name, string Sex)
{
return "Name:" + Name + "," + "Sex:" + Sex;
}
接下来是post的各种恶心的东西。。。
继续
第一种 不带参数的post请求
前台:
$("#test4").click(function () {
$.ajax({
type: "post",
url: "/api/WebApi/PostList",
success: function (responseText) {
alert(responseText);
}
});
});
后台:
public string PostList()
{
return "ojbk";
}
第二种 带有一个参数的post
前台:
$("#test5").click(function () {
$.ajax({
type: "post",
data: { "name": "张三" },
url: "/api/WebApi/PostListOneparm",
success: function (responseText) {
alert(responseText);
}
});
});
后台:
public string PostListOneparm([FromBody]string name)
{
return "OKAA";
}
第三种:
带多个参数的post (其实就是当作传进来一个类接受就行了)
前台:
$("#test6").click(function () {
var parm = {"name":"zhangsan","age":20}
$.ajax({
type: "post",
data: parm,
url: "/api/WebApi/PostListThreeparm",
success: function (responseText) {
alert(responseText);
}
});
});
后台:
public string PostListThreeparm(Person p)
{
return p.name;
}
layui表单提交与ajax访问webapi
标签:lse 单选 北京 重置 url 重要 toc 表单 标题
原文地址:https://www.cnblogs.com/yagamilight/p/10624976.html