javascript - Asp.net 控制器收到空值
问题描述
我的 ASP.net 控制器正在接收 null 而不是传入的参数:( Js 函数:
function SendFormToController() {
var username = document.getElementById("UsernameField").value;
var email = document.getElementById("EmailField").value;
var password = document.getElementById("PasswordField").value;
var SendJson = {
Username: username,
Email: email,
Password: password
};
console.log(JSON.stringify(SendJson));
$.ajax({
type: "POST",
data: JSON.stringify(SendJson),
url: "Register/Register",
contentType: "application/json"
});
}
当我控制台记录它时,数据存在。但在控制器中,我得到 - https://prnt.sc/u2mpa6 它适用于这里的每个字段
解决方案
第一的; [HttpPost]
您是否在控制器方法之上添加了该属性?
第二; 如果您以“查询字符串”格式提交:Username=xx&Password=yy&... 并使用 (HttpGet)。那样有用吗?
如果您需要执行 POST(并且不想使用 GET),您可以使用所有当前参数创建一个对象并使用该[FromBody]
属性:
[Route("Register")]
[HttpPost]
public ResultData Register([FromBody] RegisterRequest data) {
//Your logic...
}
和客户端(JavaScript)端:
let url = 'http://...';
$.post(url, { Username: name, Password: pass, What: ever }, function (result) {
//Do some nice stuff
})
.fail(function (error) {
//Oh no! Show error.statusText
});
推荐阅读
- amazon-web-services - 使用 ALB 创建 ElasticBeanstalk 应用程序时覆盖 HealthCheckPort
- java - Spring bean 未创建为单例
- ios - swift - 当方向为水平方向时,如何以不同的方式放置表格单元格
- javascript - 确保等到所有 Ajax 调用都完成后再显示结果
- java - Java - Apache POI - 仅在 MS Excel 中的单元格日期格式错误
- regex - Pandas 列在特定单词后选择行正则表达式数字
- html - 阻止除 .htaccess 之外的所有搜索查询
- javascript - 反应 UseState 流
- debugging - 为什么这个 404 超时?
- apache - 我应该保护用户的服务器脚本/文件吗?如果用户可以看到服务器文件是否存在安全风险,该怎么做?