我正在尝试使我的.net核心MVC网站接收通过javascript从视图发送的JSON。可悲的是,似乎模型没有填充数据。
[HttpPost]
public ActionResult AddSubtitles(AddSubtitleSettingsModel model)
{
/* do things and save to database */
return RedirectToAction("Subtitling");
}
我的模特:
public class AddSubtitleSettingsModel
{
public HashSet<string> from { get; set; }
public HashSet<string> to { get; set; }
public decimal startupRateLessThanOneMinute { get; set; }
public decimal startupRateBetweenOneAndThreeMinutes { get; set; }
public decimal pricePerSubtitle { get; set; }
public decimal defaultRateTranslators { get; set; }
}
我可以告诉模型没有填写,因为我在操作中放置了一个断点并检查了模型,并且所有内容都为null / empty:
这是我从javascript发送请求的方式:
let fromValues: any = fromLanguages.getValue();
let toValues: any = toLanguages.getValue();
var data = {
from: fromValues.map((l: any) => l.value),
to: toValues.map((l: any) => l.value),
startupRateLessThanOneMinute: Number($('#srLt1m').val()),
startupRateBetweenOneAndThreeMinutes: Number($('#stBt13m').val()),
startupRateBetweenThreeAndFiveMinutes: Number($('#stBt35m').val()),
pricePerSubtitle: Number($('#pPS').val()),
defaultRateTranslators: Number($('#dRT').val())
}
fetch('/Settings/AddSubtitles', {
method: 'post',
body: JSON.stringify(data)
}).then((response: any) => {
console.log(response);
});
任何建议都将不胜感激。
答案 0 :(得分:4)
尝试将[FromBody]
添加到您的方法
[HttpPost]
public ActionResult AddSubtitles([FromBody]AddSubtitleSettingsModel model)
{
/* do things and save to database */
return RedirectToAction("Subtitling");
}