我有一個非常愚蠢的問題。我的專案中有一個 foreach 回圈:
@foreach (var item in Model.HallIndex!)
foreach 給了我電影院的所有大廳 未來預定的電影,包括電影的時間。因此,我從查詢中將其回傳到我的 webapp:
電影院 1
現在播放:
下一部電影:尖叫(下午 3:00)
電影院2:
現在播放:
下一部電影:泰坦尼克號(晚上 8 點 30 分)
等等……我想你已經明白了。但!我想使用 Hallnumber 來獲取另一個查詢的結果,該查詢從資料庫中獲取正在每個大廳播放的電影。所以,我需要為控制器獲取一個引數。
編輯
這是我真正嘗試做的,但 MovieNow 不起作用:
控制器:
public async Task<ActionResult<IndexViewModel>> Index(int hallId)
{
IndexViewModel indexViewModel = new IndexViewModel();
indexViewModel.MovieIndex = MovieIndex();
indexViewModel.MovieNow = MovieNow(hallId);
indexViewModel.HallIndex = MovieNext();
return View(indexViewModel);
}
public Showtime MovieNow(int hallId)
{
return _context.Showtime.FromSqlRaw("SELECT * FROM db.\"Showtime\" S JOIN db.\"Movie\" M ON S.\"MovieId\" = M.\"Id\" WHERE \"StartAt\" < now() AND S.\"HallId\" = {0} ORDER BY \"StartAt\" DESC", hallId).FirstOrDefault();
}
視圖模型:
public class IndexViewModel
{
public Hall? Hall { get; set; }
public Movie? Movie { get; set; }
public IEnumerable<Showtime>? MovieIndex { get; set; }
public IEnumerable<Showtime>? HallIndex { get; set; }
public Showtime? MovieNow { get; set; }
}
看法:
<div class="col-4">
<div class="text-center index-hall-overview">
@foreach (var item in Model.HallIndex!)
{
<div class="row">
<p class="index-hall-title">CINEMA @Html.DisplayFor(model => item.HallId)</p>
<p class="index-hall-now">Now playing: @Html.DisplayFor(m => Model.MovieNow.Movie.Title, item.HallId) </p>
<p class="index-hall-next"><span class="index-hall-p">Next movie:</span> @Html.DisplayFor(model => item.Movie.Title)
@{
var startTime = item.StartAt.ToLocalTime().TimeOfDay.ToString(@"hh\:mm");
}
(@Html.DisplayFor(model => startTime))</p>
</div>
<hr class="index-hall-hr"/>
}
</div>
</div>
如果我這樣做,我會收到錯誤:“PostgresException:42702:列參考“Id”不明確 POSITION:8”
uj5u.com熱心網友回復:
當您加入 Showtime 和 Movie 表時,SELECT *將回傳兩個表中的所有列。顯然兩者都包含一個 Id 列,那么應該使用哪個來填充 Id 屬性?
解決方案:通過使用限制回傳到一個正確表的列SELECT s.*
uj5u.com熱心網友回復:
很可能是因為您在視圖中指向相同的 ID DisplayFor(model => item.HallId)。
uj5u.com熱心網友回復:
確保您傳遞了正確的引數,因為您的代碼看起來不錯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/438715.html
標籤:C# 网 asp.net-mvc asp.net 核心
上一篇:如何將資料從API保存到資料庫?
