jquery - 将 json 对象发送到 jsonresult 控制器 asp.net mvc
问题描述
我正在向我的 mvc 控制器发送 ajax 请求。我正在向 mvc 控制器对象发送一个对象,它在那里显示为 null。
function add()
{
var viftech =
{
"id": $("#id").val(),
"name": $("#name").val(),
"lastname": $("#lastname").val(),
"address": $("#address").val()
};
var datasent = viftech;
console.log(datasent);
$.ajax({
url: "/VIftech/insertemployee",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(datasent),
success: function(data) {
data ? alert("It worked!",+response.i) : alert("It didn't work.");
}
});
}
我的 mvc 控制器是这样的。注意 viftech 对象类具有相同的参数,例如 id、name、lastname 和 address。如果我指定多个这样的参数,我会得到值。
public JsonResult insertemployee(string id,string name,string
lastname,string address)
如果我指定对象,它总是为空,我使用了几种方法,但它不起作用。
public JsonResult insertemployee(Viftech viftech)
{
if (string.IsNullOrEmpty(viftech.name))
{
return Json("badreques", JsonRequestBehavior.AllowGet);
}
return Json(Viftechdb.add(viftech),JsonRequestBehavior.AllowGet);
}
解决方案
您需要在对象中命名参数。该对象需要一个属性 viftech 来指示参数名称,否则它将尝试绑定到 id、name 和 lastname。
var viftech =
{viftech:{
"id": $("#id").val(),
"name": $("#name").val(),
"lastname": $("#lastname").val(),
"address": $("#address").val()
}};
var datasent = viftech;
console.log(datasent);
$.ajax({
url: "/VIftech/insertemployee",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(datasent),
success: function(data) {
data ? alert("It worked!",+response.i) : alert("It didn't work.");
}
});
推荐阅读
- c++ - C++ QT tableView在设置自定义标题后不显示标题标签
- google-chrome - 无法在 Chrome 浏览器中的 Apache JMeter 中记录
- javascript - 如何在 nuxt SSR 中设置 plotly.js?
- angular - Angular:使用 NgIf 进行更改检测问题
- time-complexity - 小矩阵计算的 LAPACK 时间复杂度
- python - 如何在熊猫数据框中定义带下划线的列?
- ruby - 上传的 youtube 视频是私人的 [Ruby]
- python - 如何强制 SQLAlchemy 将布尔类型从 PostgreSQL 转换为 SQL Server 中的位类型
- swift - SwiftUI:将列表行“放入”另一个列表行
- python - 优化 .txt 文件中列表的填充