フォームを送信するときにコントローラに渡す必要がある複雑なオブジェクトがあります。この複雑なオブジェクトには、オブジェクトとオブジェクトのリストがあります。これは、Ajaxでポストを経由して、複雑なオブジェクトを受け取り、自分のウェブAPIコントローラです:剣道UI DateTimePickerがコントローラに正しくバインドされない
[HttpPost]
public IHttpActionResult CreatePurchaseInvoice(NewPurchaseInvoice newPurchaseInvoice)
{
try
{
var purchaseInvoice = new PurchaseInvoice
{
Id = newPurchaseInvoice.PurchaseInvoice.Id,
DatePurchaseInvoice = newPurchaseInvoice.PurchaseInvoice.DatePurchaseInvoice
};
// Here i do other stuff with the list of objects
_context.SaveChanges();
}
catch(Exception ex)
{
return BadRequest();
}
return Ok();
}
これは私のHTMLフォームです:
<form id="purchaseInvoiceForm">
<div class="row">
<div class="col-lg-6">
<label>Order:</label>
<select id="numberOrder" class="form-control" required name="numberOrder">
<option value="">Select an order number...</option>
</select>
</div>
<div class="col-lg-6">
<div class="form-group">
<label>Date of Purchase Invoice:</label><br />
<input id="datePurchaseInvoice" style="width: 70%" />
</div>
</div>
</div>
//Here i have an html table and every row i push into an array of the complex object
</form>
そして、これは私がAJAX経由で複雑なオブジェクトを送る私のjQueryのコードです:
$(document).ready(function(){
//this is the declaration of my complex object
var newPurchaseInvoice = {
PurchaseInvoice: {},
PurchaseInvoiceDetails: []
}
$("#purchaseInvoiceForm").submit(function (e) {
e.preventDefault();
newPurchaseInvoice.PurchaseInvoice= {
Id: $("#numberOrder").val(),
DatePurchaseInvoice : $("#datePurchaseInvoice").val()
}
$.ajax({
url: "/api/purchaseInvoices",
method: "post",
data: newPurchaseInvoice
});
});
});
問題は、KendoDateTimePickerの日付がコントローラに正しく送信されていないことです。 私はkendoDateTimePickerで選択した日付ではなく、この日付を取得します。これはスペイン語で私のPurchaseInvoiceモデルのDatePurchaseInvoiceプロパティです:
これは、jQueryのための私のKendoDateTimePickerです:
$("#datePurchaseInvoice").kendoDateTimePicker({
value: new Date(),
dateInput: true
});
そして、これが私のNewPurchaseInvoiceモデルです:
public class public class NewPurchaseInvoice
{
public PurchaseInvoice PurchaseInvoice{ get; set; }
public List<PurchaseInvoiceDetail> PurchaseInvoiceDetails{ get; set; }
}
この私のPurchaseInvoiceモデル:
public class PurchaseInvoice
{
public int Id { get; set; }
public DateTime DatePurchaseInvoice { get; set; }
}
'Date'が掲載なっているものではありません..' DatePurchaseInvoice'は..です 'NewPurchaseInvoice' – JamieD77
上の実際のプロパティ名が何であるかをあなたのNewPurchaseInvoiceモデルとPurchaseInvoiceモデルコード – JamieD77
を投稿する必要があります私は今、私のポストを編集しました。あなたの返信ありがとう –