Witam.
Ucze sie MVC5.
Zrobilem sobie tabelke Notes, zeby trzymac w niej notatki. Powiazalem z AspNetUsers, zeby kazdy uzytkownik widzial tylko "swoje" notatki. To dziala dobrze.
Model:
public class Notes
{
public int Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
public string ApplicationUserID { get; set; }
}
Teraz chcialbym zamiast razor widoku, wyswietlic notki uzywajac jquery table.
No i nie dziala.
Przypuszczam (choc moge sie mylic, dopiero zaczynam przygode z MVC) ze problem lezy w tym ze API zwraca zamiast zwyklej tabeli, calkiem skomplikowana strukture.
Aby udowodnic moja teze stworzylem sobie testowy model identyczny jak Notes, ale bez powiazania z ApplicationUser i to mi zwraca prosta tabele, ktora dziala w jquery datatable.
Przyklady zrzutu z API: dzialajaca datatable:
[
{
"$id": "1",
"Id": 1,
"Title": "Title1",
"Text": "Text1"
},
{
"$id": "2",
"Id": 2,
"Title": "Title2",
"Text": "Text2"
},
{
"$id": "3",
"Id": 3,
"Title": "Title3",
"Text": "Text3"
},
{
"$id": "4",
"Id": 4,
"Title": "Title4",
"Text": "Text4"
},
{
"$id": "5",
"Id": 5,
"Title": "Title5",
"Text": "Text5"
},
{
"$id": "6",
"Id": 6,
"Title": "Title6",
"Text": "Text6"
},
{
"$id": "7",
"Id": 7,
"Title": "Title7",
"Text": "Text7"
},
{
"$id": "8",
"Id": 8,
"Title": "Title8",
"Text": "Text8"
},
{
"$id": "9",
"Id": 9,
"Title": "Title9",
"Text": "Text9"
}
]
Przyklady zrzutu z API: niedzialajaca datatable:
[
{
"$id": "1",
"ApplicationUser": {
"$id": "2",
"Claims": [],
"Logins": [],
"Notes": [
{
"$ref": "1"
},
{
"$id": "3",
"ApplicationUser": {
"$ref": "2"
},
"Id": 27,
"Title": "Third",
"Text": "ThirdText",
"ApplicationUserID": "04cdaf25-f51f-42fc-8819-a3edc89686d6"
},
{
"$id": "4",
"ApplicationUser": {
"$ref": "2"
},
"Id": 28,
"Title": "forth",
"Text": "forth text",
"ApplicationUserID": "04cdaf25-f51f-42fc-8819-a3edc89686d6"
},
{
"$id": "5",
"ApplicationUser": {
"$ref": "2"
},
"Id": 29,
"Title": "fifth",
"Text": "fifth text",
"ApplicationUserID": "04cdaf25-f51f-42fc-8819-a3edc89686d6"
}
],
"Roles": [],
"Email": "email@gmail.com",
"EmailConfirmed": false,
"PasswordHash": "AEpJGxoXj+t1ey7GREGCA8vSUZcFmvXRiqCART3W5dlu6gX7ma+rC0dfXIb7iFWJrQ==",
"SecurityStamp": "b3bedb57-9fad-4595-b3e9-61051fcd9f6d",
"PhoneNumber": null,
"PhoneNumberConfirmed": false,
"TwoFactorEnabled": false,
"LockoutEndDateUtc": null,
"LockoutEnabled": true,
"AccessFailedCount": 0,
"Id": "04cdaf25-f51f-42fc-8819-a3edc89686d6",
"UserName": "email@gmail.com"
},
"Id": 26,
"Title": "Second",
"Text": "SecondText",
"ApplicationUserID": "04cdaf25-f51f-42fc-8819-a3edc89686d6"
},
{
"$ref": "3"
},
{
"$ref": "4"
},
{
"$ref": "5"
}
w tabelce notes mam 4 proste rekordy:
Id Title Text ApplicationUserID
26 Second SecondText 04cdaf25-f51f-42fc-8819-a3edc89686d6
27 Third ThirdText 04cdaf25-f51f-42fc-8819-a3edc89686d6
28 forth forth text 04cdaf25-f51f-42fc-8819-a3edc89686d6
29 fifth fifth text 04cdaf25-f51f-42fc-8819-a3edc89686d6
error:
DataTables warning: table id=notes - Requested unknown parameter 'Title' for row 1, column 0. For more information about this error, please see http://datatables.net/tn/4
Jakis pomysl? Chcialbym uzywac datatable i miec powiazane moje tabelki z uzytkownikami...
Z niecierpliwoscia czekam na konstruktywny komentarz...