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屬性。

相關問題