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);
}