我是ASP.NET Core的新手,我试图将视图模型发布到我的控制器(我认为)。在ASP.NET核心中使用JSON发布模型到控制器
型号:
public class ToolModel
{
public ToolModel() { }
public string text { get; set; }
public string type { get; set; }
public string name { get; set; }
}
控制器
[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);
}
查看
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(":(");
}
});
}
我目前能得到A B在我的控制器中的reak点,但模型值为null。我尝试过这个过程的各种组合,包括将[FromBody]添加到控制器参数中。当我添加[FromBody]时,我根本没有达到我的断点,请求只是失败,并且出现错误:“找不到元素”。
起初我尝试将我的ToolModel模型传递给我的索引控制器中的视图,但我无法弄清楚如何将我的视图中的数据连接到模型(我试过设置@ Model.text =“test “没有成功)。这不起作用,所以我只是将模型复制为一个javascript对象。根据我读过的内容,当我发布json时,它应该自动绑定到我的模型上?
我对ASP.NET Core非常陌生,我甚至不知道该怎么去google,并且这篇文章的每一个变体都失败了。我如何从我的视图中获取数据到我的控制器,使用我的模型,通过ajax?每个人似乎都以不同的方式做。
装饰使用[DataContract]您ToolModel类和[DataMember]标注每个属性。仅在方法签名中的ToolModel前面添加[FromBody],然后重试。 –
我试过这个,并得到相同的“找不到元素”错误和ajax错误。 – Sunden