Я хотел бы привязать значения базы данных к одному элементу <td>
в таблице в моем представлении.Являются ли они способом, которым я могу использовать это без необходимости использовать 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'
Я получаю TierNam
e с использованием необработанного SQL в моем контроллере как:
[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))