C# 要将下拉列表的文本保存到数据库中吗

C# 要将下拉列表的文本保存到数据库中吗,c#,sql,asp.net-mvc,asp.net-mvc-4,C#,Sql,Asp.net Mvc,Asp.net Mvc 4,这将有助于: 控制器/型号: presentationParentObj.lstCompany = getTickerName(); public List<SelectListItem> lstCompany { get; set; } @Html.DropDownListFor(m => m.PresentationParentObj.Year, Model.lstYear, "Select Year", new { style = "vertical-align:

这将有助于:

控制器/型号:

presentationParentObj.lstCompany = getTickerName();

public List<SelectListItem> lstCompany { get; set; }


@Html.DropDownListFor(m => m.PresentationParentObj.Year, Model.lstYear, "Select Year", new { style = "vertical-align: top;", @id = "lstYear", @class = "form-control" })
公共类MyViewModelSO
{
public int selectedValue{get;set;}
public List tickers=HomeController.getTickerName();
}
公共类HomeController:控制器
{
[HttpPost]
公共行动结果Index2007(MyViewModelSO myViewModel)
{
//拯救
var value=myViewModel.tickers.Where(r=>r.value==myViewModel.selectedValue.ToString())。
选择(s=>s.Text).ToList();
//在此处放置断点以查看值包含的文本
//…剩下的部分保存
返回视图(myViewModel);
}
公共行动结果索引2007()
{
var myViewModel=new MyViewModelSO();
返回视图(myViewModel);
}
公共静态列表getTickerName()
{
List lstTicker=新列表();
使用(SqlConnection conn=newsqlconnection(@“Server=。\sqlexpress;DataBase={MyDB};integratedsecurity=SSPI”))
{
conn.Open();
SqlCommand cmd=新的SqlCommand(“sp_ConfAdminCompanies”,康涅狄格州);
cmd.CommandType=CommandType.storedProcess;
//执行命令
使用(SqlDataReader rdr=cmd.ExecuteReader())
{
//迭代结果,将每个结果打印到控制台
while(rdr.Read())
{
lsticker.Add(新建SelectListItem
{
Text=rdr[“DisplayCompanyName”].ToString(),
Value=rdr[“代码”]。ToString()
});
}
}
}
回程计时器;
}
视图:

@model testy2016 1006.Controllers.MyViewModelSO
Index2007
@使用(Html.BeginForm())
{
@LabelFor(r=>r.selectedValue)
@Html.DropDownListFor(m=>m.selectedValue,
新的选择列表(Model.tickers、“Value”、“Text”))
}

您好,您可以使用selectedItem.Text的属性,例如:

@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>
资料来源:

希望这会有帮助

谢谢


Karthik

如何阅读“lsticker”所选文本?它似乎缺少一些代码来理解您正在采取的步骤,但对于您提供的信息,我认为您有两种选择。1.在
SelectLisItem
中,将公司名称作为值(我不推荐).2.当您收到请求时,使用代码进入服务器(SelectLisItem中设置的值)您获取公司名称,然后保存。关于。您从何处获取
id
CompanyName
信息?您要保存的
公司在何处,该信息在何处传递?从存储过程sp_confAdminCompanys我获取id和名称,在该文本中,我传递名称和“值”我正在通过IDI编辑我的任务你能看看吗?
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>
 [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);
    }