想要将Dropdown文本保存到数据库

时间:2017-06-12 12:22:59

标签: c# sql asp.net-mvc asp.net-mvc-4

public List<SelectListItem> getTickerName()
{
    List<SelectListItem> lstTicker = new List<SelectListItem>();
    DataSet ds = new DataSet();

    //ds = BasicBoObj.getDatasetSP("sp_TickerNameForCompanies");
    ds = BasicBoObj.getDatasetSP("sp_ConfAdminCompanies");

    foreach (DataRow dr in ds.Tables[0].Rows)
    {
        lstTicker.Add(new SelectListItem { Text = Convert.ToString(dr["DisplayCompanyName"]), Value = Convert.ToString(dr["code"]) });
    }
    return lstTicker;
}

我想访问此Text的{​​{1}}。

lstTicker中,我传递的是公司名称,在“值”中,我将ID传递给存储过程。

我怎么才能访问“Text”,其中我有公司名称,我想将其存储在数据库中

我正在访问值

Text

2 个答案:

答案 0 :(得分:0)

这将有效:

控制器/型号:

public class MyViewModelSO
{
    public int selectedValue { get; set; }
    public List<SelectListItem> tickers = HomeController.getTickerName();
}

public class HomeController : Controller
{
    [HttpPost]
    public ActionResult Index2007(MyViewModelSO myViewModel) 
    {
        //save
        var value = myViewModel.tickers.Where(r => r.Value == myViewModel.selectedValue.ToString()).
            Select(s => s.Text).ToList();

        //put breakpoint here to see value contains text
        //...rest of save

        return View(myViewModel);
    }

    public ActionResult Index2007()
    {
        var myViewModel = new MyViewModelSO();
        return View(myViewModel);
    }

    public static List<SelectListItem> getTickerName()
    {
        List<SelectListItem> lstTicker = new List<SelectListItem>();

        using (SqlConnection conn = new SqlConnection(@"Server=.\sqlexpress;DataBase={MyDB};Integrated Security=SSPI"))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand("sp_ConfAdminCompanies", conn);
            cmd.CommandType = CommandType.StoredProcedure;

            // execute the command
            using (SqlDataReader rdr = cmd.ExecuteReader())
            {
                // iterate through results, printing each to console
                while (rdr.Read())
                {
                    lstTicker.Add(new SelectListItem
                    {
                        Text = rdr["DisplayCompanyName"].ToString(),
                        Value = rdr["code"].ToString()
                    });

                }
            }
        }
        return lstTicker;
    }

查看:

@model Testy20161006.Controllers.MyViewModelSO
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index2007</title>
</head>
<body>
    <div>
        @using (Html.BeginForm())
        {
            <table>
                <tr>
                    <td>@Html.LabelFor(r => r.selectedValue)</td>
                        <td>
                            @Html.DropDownListFor(m => m.selectedValue,
                            new SelectList(Model.tickers, "Value", "Text"))

                </tr>
            </table>
            <input type="submit" value="SaveTextNotValue" />
        }
    </div>
</body>
</html>

答案 1 :(得分:0)

您好,您可以使用 selectedItem.Text 的属性,这里是示例:

 [HttpPost]
    public ActionResult Index(FruitModel fruit)
    {
        fruit.Fruits = PopulateFruits();
        var selectedItem = fruit.Fruits.Find(p => p.Value == fruit.FruitId.ToString());
        if (selectedItem != null)
        {
            selectedItem.Selected = true;
            ViewBag.Message = "Fruit: " + selectedItem.Text;
            ViewBag.Message += "\\nQuantity: " + fruit.Quantity;
        }

        return View(fruit);
    }

来源:https://www.aspsnippets.com/Articles/ASPNet-MVC-Get-DropDownList-Selected-Text-and-Selected-Value-in-Controller.aspx

希望它会有所帮助

由于

KARTHIK