Я пытаюсь заполнить раскрывающийся список через вызов ajax. Мой код работает нормально, пока я не верну результат (список объектов) в формате Json.Заполнить раскрывающийся список с помощью json и Entity Framework
Это моя сущность модель, которую я пытаюсь заполнить:
public partial class stkInvoicesTypesTbl
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public stkInvoicesTypesTbl()
{
this.stkInvoicesTbls = new HashSet<stkInvoicesTbl>();
}
public int invTypesTableId { get; set; }
public string invTypeDesc { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<stkInvoicesTbl> stkInvoicesTbls { get; set; } //this property throw Exception and i think here is my problem
}
Вот мой Ajax вызова и код скрипта
var InvType = []
// fetch invoice type from database
function LoadInvoiceType(element)
{
if (InvType.length == 0) {
//ajax function to fetch data
$.ajax({
type: "GET",
url: '/InvoiceItm/getInvoiceType',
success: function (data) {
InvType = data;
renderInvoiceType(element);
},
error: function (data) {
InvType = data;
}
})
}
else {
//render invoice type to elements
renderInvoiceType(element);
}
}
function renderInvoiceType(element)
{
var $ele = $(element);
$ele.empty();
$.each(InvType, function (i, val) {
$ele.append($('<option/>').val(val.invTypesTableId).text(val.invTypeDesc));
})
}
Мой контроллер действия:
public JsonResult getInvoiceType()
{
List<stkInvoicesTypesTbl> InvoiceTypes = new List<stkInvoicesTypesTbl>();
using (iraqEntities dc = new iraqEntities())
{
InvoiceTypes = dc.stkInvoicesTypesTbls.OrderBy(a => a.invTypeDesc).ToList();
}
return new JsonResult { Data = InvoiceTypes, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
Мои вид:
<td><label for="input-text" class="col-sm-1 control-label">Invoice Type</label> </td>
<td>
<select type="text" id="InvoiceType" class="col-sm-3 form-control" onchange="LoadInvoiceType(this)"></select>
</td>
Мой список правильно заполнен в контроллере, но когда я верну его обратно в json-формате (верните JsonResult ...), это ошибка возврата.
А вот некоторые скриншоты для моей отладки могут быть полезны:
return my data from database and fill my list in controller
Итак, кто может помочь мне в моей проблеме будет понятным
привет, я думаю, вам нужно использовать include в вашем запросе. –
Да, теперь это работа, спасибо вам, дорогая. – Moro
приветствую. Надеюсь, я поставил его как ответ :) –