如何将值从数据库绑定到ASP.Net MVC中的特定元素

时间:2019-05-03 15:57:21

标签: asp.net-mvc razor css-tables

我想将数据库值绑定到视图中表中的单个<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>

TierIdZimra表中的外键,其值被保存为这样,但是在视图上TierName是我实际上想要显示的内容。该视图本身将采用两个模型,即TierZimra。如何启用将值从数据库绑定到表中的特定元素。实际上,我正在获取不在<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))

Tier

ZIMRA

enter image description here

0 个答案:

没有答案