1

我有一个简单的模型,我的asp.net核心控制器:asp.net核心定制的模型绑定只为一个属性

[HttpPost] 
public async Task<DefaultResponse> AddCourse([FromBody]CourseDto dto) 
{ 
    var response = await _courseService.AddCourse(dto); 
    return response; 
} 

我的模式是:

public class CourseDto 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Genre { get; set; } 
    public string Duration { get; set; } 
    public string Level { get; set; } 
    public string AgeRange { get; set; } 
    public string Notes { get; set; } 
    public bool Active { get; set; } 
    public string OrganisationCode { get; set; } 
} 

我想使用自定义模式联编程序或操作筛选器设置“OrganisationCode”的值,但没有成功。 如果你建议在执行动作之前更新ethe模型的方法是什么,那么我会觉得这是一个愚蠢的行为。

谢谢。

+0

请提供有关要绑定到OrganisationCode属性的数据来​​源的更多信息。它是否与其他名称一起公布? –

回答

0

您在动作参数上使用的[FromBody]属性。意味着您指示模型绑定的默认行为来代替使用格式化程序。这就是为什么您的自定义模型活页夹不起作用。

而[FromBody]正在读取内容(请求正文)。所以你不会从Action Filter获取请求主体,因为请求主体是不可回滚的流,所以它假设只被读取一次(我假设你正在尝试从Action Filter读取请求主体)。

我的建议是使用您的自定义模型联编程序并删除FromBody属性。

相关问题