Во-первых, я новичок в .Net MVC, и извините, если есть какое-то недопонимание.
Я искал эту проблему уже 2 дня, но, к сожалению, не смог найти ответ.
Я пытаюсь сделать запрос на присоединение к linq и хочу перейти к просмотру по списку.
Заранее спасибо,
Мой контроллер;
var QueryTransferList = (from t in db.Transfers
.OrderBy(item => item.Date)
.ThenBy(item => item.TransferTime)
.ThenBy(item => item.GuestName)
join s in db.StatusDurums
on t.Status equals s.StatusName
where
t.Date >= todaysDate &&
t.Date <= todaysDate
select new { t, s }).ToList();
return View(QueryTransferList);
МойПросмотр;
@model IEnumerable<NuvoTTMS.Models.Transfer>
@foreach (var item in Model)
{
<tr>
<td class="text-center">@Html.ActionLink(item.Id.ToString(), "Edit", new { id = item.Id })</td>
<td class="text-center">@Html.DisplayFor(modelItem => item.Date)</td>
<td>@Html.DisplayFor(modelItem => item.Reference)</td>
<td>@Html.DisplayFor(modelItem => item.GuestName)</td>
<td>@Html.DisplayFor(modelItem => item.From1)</td>
<td>@Html.DisplayFor(modelItem => item.To1)</td>
<td>@Html.DisplayFor(modelItem => item.Assistance)</td>
<td class="text-center">@Html.DisplayFor(modelItem => item.Pax)</td>
<td>@Html.DisplayFor(modelItem => item.FlightNumber)</td>
<td class="text-center">@Html.DisplayFor(modelItem => item.TransferTime)</td>
<td>@Html.DisplayFor(modelItem => item.TransferVehicle)</td>
<td>@Html.DisplayFor(modelItem => item.TransferSupplier)</td>
<td>@Html.DisplayFor(modelItem => item.DriverName)</td>
</tr>
}
Код ошибки;
The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[<>f__AnonymousType6`2[NuvoTTMS.Models.Transfer,NuvoTTMS.Models.StatusDurum]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[NuvoTTMS.Models.Transfer]'.
Что я сделал;
- Я также указал имена столбцов, такие как
выберите новый {t.Assistance, s.StatusId}). ToList ();
А также я использую "AsEnumerable ()" вместо .Tolist ();
### Обновлено ###
Я очень благодаренВы за ваш быстрый ответ.Я просто слежу за вашими комментариями, и это работает хорошо.
Как вы можете видеть из приведенных ниже кодов, я хочу отправить все столбцы для просмотра.Нужно ли записывать все имена столбцов одно за другим, как показано ниже, или есть ли другой способ сделать это?
var QueryTransferList = (from t in db.Transfers
.OrderBy(item => item.Date)
.ThenBy(item => item.TransferTime)
.ThenBy(item => item.GuestName)
join s in db.StatusDurums
on t.Status equals s.StatusName
where
t.Date >= todaysDate &&
t.Date <= todaysDate
select new NuvoTTMS.Models.TransferViewModel
{
Id = t.Id,
Date = t.Date,
Service = t.Service,
Nationality = t.Nationality,
Reference = t.Reference,
GuestName = t.GuestName,
From1 = t.From1,
To1 = t.To1,
Assistance = t.Assistance,
Pax = t.Pax,
FlightNumber = t.FlightNumber,
TransferTime = t.TransferTime,
TransferVehicle = t.TransferVehicle,
TransferSupplier = t.TransferSupplier,
Notes = t.Notes,
InvoiceCode = t.InvoiceCode,
InvoiceRate = t.InvoiceRate,
Status = t.Status,
DriverName = t.DriverName,
StatusId = s.StatusId,
StatusName = s.StatusName,
StatusColor = s.StatusColor
}).ToList();
И также мой последний вопрос, я объединил модели Transfer и StatusDurum в TransferViewModel, как показано ниже.Есть ли способ реализовать модели Transfer и StatusDurum для TransferViewModel.
На самом деле, если я внесу какие-либо изменения в модель передачи, то мне нужно сделать это в tranferviewmodel, верно?
public class TransferViewModel
{
public int Id { get; set; }
[Display(Name = "Date")]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? Date { get; set; }
[Display(Name = "Transfer Type")]
public string Service { get; set; }
[Display(Name = "National")]
public string Nationality { get; set; }
[Display(Name = "Gta Reference")]
public string Reference { get; set; }
[Display(Name = "Guest Name")]
public string GuestName { get; set; }
[Display(Name = "From")]
public string From1 { get; set; }
[Display(Name = "To")]
public string To1 { get; set; }
[Display(Name = "Ass.")]
public string Assistance { get; set; }
[Display(Name = "Pax")]
public string Pax { get; set; }
[Display(Name = "Flight No")]
public string FlightNumber { get; set; }
[Display(Name = "Time")]
public string TransferTime { get; set; }
[Display(Name = "Vehicle")]
public string TransferVehicle { get; set; }
[Display(Name = "Supplier")]
public string TransferSupplier { get; set; }
[Display(Name = "Transfer Notes")]
public string Notes { get; set; }
[Display(Name = "Invoice Rate")]
public string InvoiceRate { get; set; }
[Display(Name = "Invoice Code")]
public string InvoiceCode { get; set; }
[Display(Name = "Status")]
public string Status { get; set; }
[Display(Name = "Driver Name")]
public string DriverName { get; set; }
public int StatusId { get; set; }
public string StatusName { get; set; }
public string StatusColor { get; set; }