【发布时间】:2020-05-24 22:14:20
【问题描述】:
- 如何在表格中显示当前模型的组合框?
- 如何正确制作模型以便在表格中显示组合框?
目前,我得到了结果,如图所示。
ASP.NET Core 3.1
问题:
- 在带有组合框的字段中,不显示用于记录的字段的当前值。
Company.cs
public class Company
{
public int Id { get; set; }
public string Picture { get; set; }
public string Name { get; set; }
public string Description{ get; set; }
public bool Status { get; set; }
public Status2 Status2Value { get; set; }
public class Status2
{
public int ID { get; set; }
public string Status { get; set; }
}
}
HomeController.cs
public class HomeController : Controller
{
public IActionResult Index()
{
List<Company> companies_List = new List<Company>();
companies_List = MockCompanyData.CompanyList_prop;
List<Company.Status2> status2_List = new List<Company.Status2>();
status2_List = MockCompanyData.CompanyStatus2_prop;
IndexVM indexVM = new IndexVM { Companies = companies_List, companyStatus2 = status2_List };
return View(indexVM);
}
}
IndexVM.cs
public class IndexVM
{
public IEnumerable<Company> Companies { get; set; }
public IEnumerable<Company.Status2> companyStatus2 { get; set; }
}
MockCompanyData.cs
static class MockCompanyData
{
static string mainPathForImg = @"";
static List<Company.Status2> companyStatus2List = new List<Company.Status2>
{
new Company.Status2 {ID=1, Status = ""},
new Company.Status2 {ID=2, Status = "Yes"},
new Company.Status2 {ID=3, Status = "No"}
};
static List<Company> companyList = new List<Company>
{
new Company {Id = 1, Picture = mainPathForImg + @"~/img/number_1_blue.png", Name ="Name_Company_1", Description ="Description_1", Status = true, Status2Value = companyStatus2List[0]},
new Company {Id = 2, Picture = mainPathForImg + @"~/img/number_2_blue.png", Name ="Name_Company_2", Description ="Description_2", Status = false, Status2Value = companyStatus2List[1]},
new Company {Id = 3, Picture = mainPathForImg + @"~/img/number_3_blue.png", Name ="Name_Company_3", Description ="Description_3", Status = true, Status2Value =companyStatus2List[0]}
};
public static List<Company> CompanyList_prop
{
get
{
return companyList;
}
set
{
companyList = value;
}
}
public static List<Company.Status2> CompanyStatus2_prop
{
get
{
return companyStatus2List;
}
set
{
companyStatus2List = value;
}
}
}
Index.cshtml
@using WebApplCore.Core.ViewModels;
@using WebApplCore.Models;
@model IndexVM;
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
<head>
<link href="~/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="container">
<table class="table table-sm table-hover table-striped">
<thead class="thead-dark">
@{var headerMetadata = Model.Companies.FirstOrDefault();}
<tr>
<th>
@Html.DisplayNameFor(model => headerMetadata.Id)
</th>
<th>
@Html.DisplayNameFor(model => headerMetadata.Picture)
</th>
<th>
@Html.DisplayNameFor(model => headerMetadata.Name)
</th>
<th>
@Html.DisplayNameFor(model => headerMetadata.Description)
</th>
<th>
@Html.DisplayNameFor(model => headerMetadata.Status)
</th>
<th>
@Html.DisplayNameFor(model => headerMetadata.Status2Value)
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (Company item in Model.Companies)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Id)
@*@item.Id*@
</td>
<td>
<img src=@Html.DisplayFor(modelItem => item.Picture) class="rounded-circle" asp-append-version="true" alt="No Picture">
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
<input type="checkbox" value=@Html.DisplayFor(modelItem => item.Status)>
</td>
<td>
<select name="companyId" class="form-control">
@foreach (Company.Status2 status2 in Model.companyStatus2)
{
<option value="@status2.ID">@Html.DisplayFor(modelItem => status2.Status)</option>
}
</select>
</td>
<td>
<a asp-action="Edit" asp-route-id="@item.Id">Edit</a> |
<a asp-action="Details" asp-route-id="@item.Id">Details</a> |
<a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
</td>
</tr>
}
</tbody>
</table>
</div>
</body>
【问题讨论】:
-
什么问题?组合框渲染成功
-
@Always_a_learner 问题:当前记录的
Status字段的值不显示。 示例: 1. 对于带有id = 1的记录,字段Status = true。该表显示一个空字段。Status = empty。 2. 对于带有id = 2的记录,字段Status = false。该表显示一个空字段。Status = empty。如果我无法回答您的问题,请告诉我。 -
试着理解,检查我的答案,如果我估计不正确,请告诉我
-
@Always_a_learner @Always_a_learner 在过去的cmets中,我弄错了。会更正确。 问题:当前记录的
Status2Value字段的值不显示。 示例: 1 对于使用id = 1进行录制,该字段为Status2Value = yes。该表显示一个空字段。Status2Value = empty。 2. 对于使用id = 2进行录制,该字段为Status2Value = No。该表显示一个空字段。Status = empty。如果我无法回答您的问题,请告诉我。 —— -
您想在第一行的 status2Value 字段中看到 Yes,在第二行的 Status2Value 中看到 No?
标签: asp.net asp.net-core