Ich habe Aktionen in meinem Controller (.NET CORE MVC App), die zwei oder mehr komplexe Parameter, die erfasst werden sollte, wenn eine Daten von einem Client gebucht werden. Ich möchte den Aufruf mit einer HTTP.GET- oder HTTP.POST-Methode ausführen (abhängig von der Situation). Ich habe verschiedene Ansätze ausprobiert, aber nur die Bindung mit JObject funktioniert gut. Andere haben Nullwerte..Net Core Mehrere komplexe Modelle Bindung Problem
Ich bin bemüht herauszufinden, was ich falsch mache. Irgendwelche Vorschläge?
Hier ist mein Code.
Controller:
[HttpPost]
public IActionResult GetDataPOST([FromBody]DataFilter dataFilter, [FromBody]SeriesFilter seriesFilter)
{
return Json(null);
}
[HttpPost]
public IActionResult GetDataPOSTjObject([FromBody]JObject stuff)
{
var content = stuff["dataFilter"].ToObject<DataFilter>();
var content2 = stuff["seriesFilter"].ToObject<SeriesFilter>();
return Json(null);
}
[HttpGet]
public IActionResult GetDataGET(DataFilter dataFilter, SeriesFilter seriesFilter)
{
return Json(null);
}
Modelle:
public class DataFilter
{
public string search { get; set; }
}
public class SeriesFilter
{
public string search { get; set; }
}
Eckig:
$scope.SubmitTimeSeriesFilter = function (options) {
options.search = "Search...";
$http.get("@Url.Action("GetDataGET", "TimeSeries")", { params: { seriesFilter: options, dataFilter: options } }).success(function (rv) {
options.success(rv);
});
$http.post("@Url.Action("GetDataPOST", "TimeSeries")", { seriesFilter: options, dataFilter: options }).success(function (rv) {
options.success(rv);
});
$http.post("@Url.Action("GetDataPOSTjObject", "TimeSeries")", { seriesFilter: options, dataFilter: options }).success(function (rv) {
options.success(rv);
});
};