Sun*_*den 0 c# ajax json asp.net-core
我是 ASP.NET Core 的新手,我正在尝试将视图模型发布到我的控制器(我认为)。
模型:
public class ToolModel
{
public ToolModel() { }
public string text { get; set; }
public string type { get; set; }
public string name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
控制器
[HttpPost("/Utilities/Tool/{type}/{process}")]
public IActionResult ToolProcess(ToolModel model, string type, string process)
{
var test = model.text;
var result = new Services.ToolServices().exec(model, type, process);
return Ok(result);
}
Run Code Online (Sandbox Code Playgroud)
看法
var model = {
text: "Test_text",
type: "test",
name: "test_name"
}
function post(model) {
var url = '/Utilities/Tool/Test/Edit';
$.ajax({
url: url,
data: JSON.stringify(model),
type: 'POST',
success: function () {
alert("all good");
},
error: function () {
alert(":(");
}
});
}
Run Code Online (Sandbox Code Playgroud)
我目前能够在我的控制器中到达一个断点,但模型值为空。我尝试了这个过程的各种组合,包括将 [FromBody] 添加到控制器参数中。当我添加 [FromBody] 时,我根本没有到达我的断点,请求失败了,我收到错误:“找不到元素”。
起初我尝试将我的 ToolModel 模型传递给我的索引控制器中的视图,但我无法弄清楚如何将数据从我的视图连接到模型(我尝试设置@Model.text = "test"没有成功)。那没有用,所以我只是将模型复制为一个 javascript 对象。根据我所阅读的内容,当我发布 json 时,它应该会自动绑定到我的模型吗?
我对 ASP.NET Core 太陌生了,我什至不知道要谷歌什么,而且帖子的每个变体对我来说都失败了。如何使用我的模型通过 ajax 从我的视图中获取数据到我的控制器?每个人的做法似乎都不一样。
由于您通过 POST 请求发送数据,因此数据将在请求正文中发送。因此,您应该指示 MVC 框架从请求正文中读取它。您可以使用[FromBody]属性装饰您的参数来做到这一点。
此外,删除type参数,因为您的 ToolModel 类具有同名的属性。您也可以从属性路由定义中删除它。
[HttpPost("/Utilities/Tool/{process}")]
public IActionResult ToolProcess([FromBody] ToolModel model, string process)
{
var test = model.text;
var result = model;
// to do : Add your custom code here
return Ok(result);
}
Run Code Online (Sandbox Code Playgroud)
在客户端,您需要指定 contetType 标头,以便服务器知道它接收的类型以及如何处理它。在 ajax 调用中指定“application/json”作为 contentType 值。
var url = '/Utilities/Tool/Edit';
$.ajax({
url: url,
data: JSON.stringify(model),
contentType:"application/json",
type: 'POST',
success: function (r) {
alert("all good");
console.log(JSON.stringify(r));
},
error: function () {
console.log('errr');
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3942 次 |
| 最近记录: |