Asp.Net Mvc C# DataTables Server side processing
Asp.Net Mvc C# DataTables Server side processing
Asp.net Mvc bir projem var.
Datatables'ın server side özelliğini bir türlü yapamadım.
Datatables.Aspnet.Mvc5 bunu denedim fakat hata alıyorum.
Ado.Net ile düz mantık yapsam olurda Entity Framework ile yapmak istiyorum.
// controller içerisindeki methodum
public ActionResult Ajax(IDataTablesRequest request)
{
// Nothing important here. Just creates some mock data.
ItemContext it = new ItemContext();
var data = it.Items.AsEnumerable().Where(i => i.Id >= 110100000 && i.Id <= 110199999);
// Global filtering.
// Filter is being manually applied due to in-memmory (IEnumerable) data.
// If you want something rather easier, check IEnumerableExtensions Sample.
var filteredData = data.Where(_item => _item.Name.Contains(request.Search.Value));
// Paging filtered data.
// Paging is rather manual due to in-memmory (IEnumerable) data.
var dataPage = filteredData.Skip(request.Start).Take(request.Length);
// Response creation. To create your response you need to reference your request, to avoid
// request/response tampering and to ensure response will be correctly created.
var response = DataTablesResponse.Create(request, data.Count(), filteredData.Count(), dataPage);
// Easier way is to return a new 'DataTablesJsonResult', which will automatically convert your
// response to a json-compatible content, so DataTables can read it when received.
return new DataTablesJsonResult(response, JsonRequestBehavior.AllowGet);
}
<table id="datatables" class="table table-striped dt-responsive nowrap table-dark table-hover" width="100%" style="width: 100%;">
<thead>
<tr>
<th>Id</th>
<th> </th>
<th>Name</th>
<th>Level</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Id</th>
<th> </th>
<th>Name</th>
<th>Level</th>
</tr>
</tfoot>
</table>
@section Scripts {
<script type="text/javascript">
$(document).ready(function () {
var table = $("#datatables").DataTable(
{
"proccessing": true,
"serverSide": true,
"ajax": {
"url": "@Url.Action("Ajax", "Items")",
"type": "POST"
},
"columns": [
{ "data": "Id" },
{ "data": "Icon" },
{ "data": "Name" },
{ "data": "Level" },
]
});
});
</script>
}
public class ItemContext : DbContext
{
public ItemContext() : base("ConnectionStrings")
{
}
public DbSet<Item> Items { get; set; }
}
public class Item
{
[Key]
public int Id { get; set; }
public string Icon { get; set; }
public string Name { get; set; }
public int Level { get; set; }
}
aldığım hata
Bir arabirimin örneği oluşturulamaz.
Açıklama: Geçerli web isteği yürütülürken işlenmemiş özel durum oluştu. Lütfen hata ve kod içinde kaynaklandığı yer hakkında daha fazla bilgi almak için yığın izlemesini gözden geçirin.
Özel Durum Ayrıntıları: System.MissingMethodException: Bir arabirimin örneği oluşturulamaz.
Bu konuda Datatables a alternatif bir şey varsa öneri olarak onuda yazın.
Yardımlarınızı bekliyorum şimdiden teşekkür ederim.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!