Мне было интересно, как я могу отобразить свой model.property в моем View без переменной модели типа IEnumerable, в представлении; а также, что я должен использовать в моем контроллере вместо SingleOrDefault, чтобы показать каждую строку определенного свойства?
Вот код:
Модель - Roles.cs
[Key]
public string Id { get; set; }
public string Name { get; set; }
public string NormalizedName { get; set; }
public string ConcurrencyStamp { get; set; }
public int FunctionId { get; set; }
[ForeignKey("FunctionId")]
public Functions Functions { get; set; }
Модель -Function.cs
[Key]
public int FunctionId { get; set; }
public string FunctionName { get; set; }
public bool CanEdit { get; set; }
public bool CanAdd { get; set; }
public bool CanDel { get; set; }
public bool CanView { get; set; }
Контроллер - RolesController.cs
public async Task<IActionResult> Edit(string id)
{
if (id == null)
{
return NotFound();
}
var aspNetRoles = await _context.AspNetRoles.SingleOrDefaultAsync(m => m.Id == id);
if (aspNetRoles == null)
{
return NotFound();
}
ViewData["FunctionId"] = new SelectList(_context.Functions, "FunctionId", "FunctionId", aspNetRoles.FunctionId);
return View(aspNetRoles);
}
А потом то, что я пытаюсь получить для своего Вида
Роль / Edit.cshtml
<div class="flex-row col-8">
@foreach(var item in Model //what to do?)
{
@Html.DisplayFor(m => m.Functions.FunctionName)
<input type="checkbox" asp-for="Functions.CanAdd" />
<input type="checkbox" asp-for="Functions.CanEdit" />
<input type="checkbox" asp-for="Functions.CanDel" />
<input type="checkbox" asp-for="Functions.CanView" />
}
Спасибо!