簡體   English   中英

參數在 post 方法中沒有綁定到 .net core 3.1 中的模型

[英]Parameters are not binding in post method to Model in .net core 3.1

我正在從之前的框架中的 .net 4.8 遷移到 .net core 3.1,這個帖子調用工作正常,但這里的 .net 核心模型沒有綁定。雖然控制器方法被調用,但所有參數都為空。 也附上日志。

無法在名稱為 '"parameters.configRowLimit"' 的請求中找到綁定屬性 '"Project.BusinessObjects.Areas.Reports.ViewParameters"."configRowLimit"' 類型為 '"System.Int32"' 的值

它正在為每個財產而來。 我不明白為什么它要查看 parameters.configRowLimit 而從前端它在 parameters.ViewParameters.configRowLimit 內

這是我的前端參數。

讓視圖參數 = {};

    ViewParameters = {
      SqlQuery: SqlQuery,
      ViewObject: ViewObject,
      RowCount: totalCount,
      MaximumRowLimit: maximumRowLimit,
      AppInstanceID: $('#AppInstanceId').val(),
      FileName: metricName
    };

    let params = {};
    params = {
      ViewParameters: ViewParameters,
      Metrics: obj,
      fileTypes: value
    };
    

    let body = { parameters: params };
    let options = ({ headers: headers });
    return this.http.post(this._controllerMethod, body, options)`enter code here`

這是.net核心控制器方法

  [FileDownload, DeleteFile]
    public ActionResult DownLoadQuery([FromBody] CurrentMetricDownload parameters)

模型 CurrentMetric 下載

 public class CurrentMetricDownload
    {
        public FileTypes fileTypes { get; set; }
        public ExportFile File { get; set; }
        public TreeMetrics Metrics { get; set; }
        public ViewParameters Viewparameters { get; set; }
    }

如果你給parameters的角度來PARAM的名字,那么在你的U型需要與這個名字atrribute太多,但型號名稱是parameters 所以你需要直接將參數分配給 body

let body = params;
let options = ({ headers: headers });
return this.http.post(this._controllerMethod, body, options)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM