我想将数据库值绑定到视图中表中的单个<td>
元素。从我的理解,如果必须将数据库值绑定到ALL表,它们是我可以不必使用IEnumerable
的一种方式,它们将应用于表中的<td>
元素。除了使用for
循环之外,还有其他方法吗,因为这仅仅是一个元素?我已经在数据库表的图像上附加了值以及用户界面上的期望值。
在我的Register.cshtml中,我有:
@model MIHR_SYSTEM.Models.TaxTable.Zimra
@model IEnumerable<MIHR_SYSTEM.Models.TaxTable.Tier>
....
....
<table class="table" class="width100">
<tr class="graybg">
<th>Tax Bracket</th>
<th>Min Salary</th>
<th>Max Salary</th>
<th>PAYE</th>
<th>Deduction</th>
</tr>
<tr>
@foreach (var item in Model)
{
<td>
@item.TierName
</td>
}
<td>
@Html.EditorFor(model => model.MinSalary, new { htmlAttributes = new { @class = "form-control", @placeholder = "USD" } })
@Html.ValidationMessageFor(model => model.MinSalary, "", new { @class = "text-danger" })
</td>
<td>
@Html.EditorFor(model => model.MaxSalary, new { htmlAttributes = new { @class = "form-control", @placeholder = "USD" } })
@Html.ValidationMessageFor(model => model.MaxSalary, "", new { @class = "text-danger" })
</td>
</table>
TierId
是Zimra
表中的外键,其值被保存为这样,但是在视图上TierName
是我实际上想要显示的内容。该视图本身将采用两个模型,即Tier
和Zimra
。如何启用将值从数据库绑定到表中的特定元素。实际上,我正在获取不在<td>
循环中的所有其他foreach
元素的异常:
'myElement'不包含'myElement'的定义,并且没有可访问的扩展方法'myElement'接受类型为'myElement'的第一个参数
我正在使用控制器中的原始SQL来检索TierNam
e:
[HttpPost]
public ActionResult ConfigureZimbabweTax(FormCollection formcollection)
{
List<Models.TaxTable.Tier> tiers = new List<Models.TaxTable.Tier>();
try
{
using (SqlConnection conn = new SqlConnection(Helpers.DatabaseConnect))
{
SqlCommand cmd = new SqlCommand("SELECT * FROM Tier", conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Models.TaxTable.Tier parameter = new Models.TaxTable.Tier();
parameter.TierId = Convert.ToInt32(dr["TierId"]);
parameter.TierName = Convert.ToString(dr["TierName"]);
tiers.Add(parameter);
}
}
Models.TaxTable.Zimra zimra = new Models.TaxTable.Zimra();
实际上,我正在将这些值检索到SelectedListItem
上,这并不是我想要的,因为我想绑定到<td>
而不是HtmlDropDownFor
元素上。我也不确定如何实现相同目标:
[HttpPost]
public ActionResult ConfigureZimbabweTax(FormCollection formcollection)
{
List<Models.TaxTable.Tier> tiers = new List<Models.TaxTable.Tier>();
try
{
using (SqlConnection conn = new SqlConnection(Helpers.DatabaseConnect))