随着it的技术发展,目前越来越多的项目采用前后端分离的开发模式,通过webapi提供接口数据来进行交互

最近项目用的是.netCore WebApi,在最近的项目使用中发现一些问题,进行记录。个人简介不一定全面

在进行webapi开发中经常会遇到整个表单的数据提交,在接口处可以定义实体对象来接收数据,但是在参数传递的时候需要注意的是,传递的数据是Json字符串格式,而不是Json对象(如果是Json对象的话,表单会获取为null)

下面上代码

页面代码

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Api</title>
</head>
<body>
<h2>ApiTest</h2>
<label id="lan"></label>
<hr /> <form id="formSchool" name="formSchool" >
<table>
<tr><td> ShoolId: </td><td><input type="text" value="" name="ShoolId" /></td></tr>
<tr><td>SchoolCode:</td><td><input type="text" value="" name="SchoolCode" /></td></tr>
<tr><td>SchoolName:</td><td><input type="text" value="" name="SchoolName" /></td></tr>
<tr><td>SchoolAddress:</td><td><input type="text" value="" name="SchoolAddress" /></td></tr>
<tr><td>SchoolLogo:</td><td><input type="text" value="" name="SchoolLogo" /></td></tr>
<tr><td>State:</td><td><input type="text" value="" name="State" /></td></tr>
</table>
<input type="button" onclick="SubmitSchool()" value="调用" />
</form>
<hr />
<script src="/js/jquery-1.10.2.min.js"></script>
<script src="/js/jquery.form.js"></script>
<script>
function SubmitSchool() { alert("数据获取中")
$.ajax({
cache: true,
type: "POST",
contentType: "application/json",
url: "/api/CommonSchool",
data:$('#formSchool').serializeObject(),// 你的formid
dataType: "json",
async: false,
beforeSend: function (request) {
//request.setRequestHeader("token", $("#token").val());
},
error: function (request) {
console.log(request);
alert(request);
},
success: function (data) {
alert("数据获取成功")
$("#lan").text(JSON.stringify(data));
}
}); } //将Form 表单转换为Json字符串
$.fn.serializeObject = function () {
var o = {};
var a = this.serializeArray();
$.each(a, function () {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
//o 为Json对象
return JSON.stringify(o);
};
</script>
</body>
</html>

接口获取

 /// <summary>
/// CommonShool
/// </summary>
/// <param name="commonShool">和接口对应的实体对象</param>
/// <returns></returns>
[HttpPost]
public Registration.ApiModels.CommonShool AddSchools([FromBody]Registration.ApiModels.CommonShool commonShool)
{
return commonShool;
}

.netCore2.0 WebApi 传递form表单的更多相关文章

  1. c#WebApi使用form表单提交excel,实现批量写入数据库

    思路:用户点击下载模板按钮,获取到excel模板,然后向里面填写数据保存.from表单提交的时候选择保存好的excel,实现数据的批量导入过程 先把模板放在服务器的项目目录下面:如 模板我一般放在:F ...

  2. Element Form表单实践(上)

    作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/58c61b4361ff4b005d9e8 ...

  3. Element Form表单实践(下)

    作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/58c61b4361ff4b005d9e8 ...

  4. React-Antd4的Form表单校验

    之前很少用react做项目,最近入职新公司,用的react,在自己的摸索过程中,慢慢会记录一些使用方法.今天简单记录一下使用antd 4.0版本的Form表单校验,直接代码. 需要购买阿里云产品和服务 ...

  5. Liferay7 BPM门户开发之40: Form表单的Action到Render的数据传递

    在Form提交后的变量,很多情况是要展现在jsp页面中,这时Action到Render的变量传递就非常有用. 例如,您在数据库中添加了学生的详细信息. 为了实现这一需求,先创建Form表单(学生的细节 ...

  6. ajax传递数组、form表单提交对象数组

    在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致,那么传值就没有什么问题.不过,在前几天的开发 ...

  7. form表单传递对象数组

    ajax传递数组.form表单提交对象数组 在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用 form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致 ...

  8. Ajax(form表单文件上传、请求头之contentType、Ajax传递json数据、Ajax文件上传)

    form表单文件上传 上菜 file_put.html <form action="" method="post" enctype="multi ...

  9. thinkPHP5.0使用form表单提交数据和删除文章,不用TP的提示页面,使用弹出提示信息

    form表单提交数据和删除文章时,TP的默认信息提示页面的看起来不是很好看,想要实现弹窗提示怎么做呢? 前端:可以使用前端的一个知识--iframe,iframe元素会创建包含另外一个文档的内联框架: ...

随机推荐

  1. 系统禁用执行FIPS政策导致程序发生“调用的目标发生了异常”

    工具是使用AES-256-CBC加密算法 问题 最近有客户反映, 在使用我们工具时候,会出现“调用的目标发生了异常”错误, 接到反馈之后, 我们进行了很多测试,甚至得到客户系统信息和framework ...

  2. Tomcat源码(一):整体架构

    由于tomcat的组件较多,处理流程比较复杂 ,这里是 由浅到深来解释tomcat的整体架构 1.首先应该大致了解下tomcat的 /conf/server.xml  配置文件:在tomcat启动的时 ...

  3. 【Linux】CentOS7上解压zip需要安装uzip

    1.安装zip.unzip应用 yum install zip unzip 2.压缩和解压文件 以下命令均在/home目录下操作 cd /home #进入/home目录 a.把/home目录下面的my ...

  4. mysqli扩展库应用---程序范例

    通过mysqli扩展库对用户表user1进行增删改查操作,用户表user1结构如下: 1,建立数据库操作类库mysqliTool.class.php,代码如下: <?php class mysq ...

  5. CentOS 中卸载 RPM 包文件

    CentOS 中卸载 RPM 包文件 一.原由 因为之前卸载 openvas 这个工具,使用了 find / -name "openvas"-exec rm -rf {} \ ; ...

  6. P4365 [九省联考2018]秘密袭击coat

    $ \color{#0066ff}{ 题目描述 }$ Access Globe 最近正在玩一款战略游戏.在游戏中,他操控的角色是一名C 国士 兵.他的任务就是服从指挥官的指令参加战斗,并在战斗中取胜. ...

  7. 除了ROS, 机器人定位导航还有其他方案吗?

    利用ROS进行机器人开发,我想大多数企业是想借助ROS实现机器人的导航.定位与路径规划,它的出现大大降低了机器人领域的开发门槛,开发者无需向前人一样走众多弯路,掌握多种知识才能开始实现机器人设计的梦想 ...

  8. tp5 重定向缺少index.php报错(No input file specified)

    转别人的,有用,Mark一下 public 下的.htaccess 修改为 <IfModule mod_rewrite.c>  Options +FollowSymlinks -Multi ...

  9. 自动更新R软件

    利用R语言命令自动更新R语言软件的版本. install.packages("installr") library(installr) updateR()

  10. 【车联网系统】基于Python实现的现网全自动化测试方案

    前面写了几篇基于CANoe实现的仿真测试台架,属于半自动化测试方案.现出一个Python实现的车联网系统全自动化测试方案. 目录结构 1.-----------------------车联网系统组成 ...