我想使用mvc4中的storedprocedure将数据库的列值绑定到dropdownlist 我不知道如何处理这个.plz帮助我
我的模型代码是这样的
public class dropdown
{
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["cnstr"].ConnectionString;
[Required(ErrorMessage = "DomainName is Required")]
[Display(Name = "DomainName")]
public string DomainName { get; set; }
public IEnumerable<dropdown> obj { get; set; }
public List<dropdown> LoadDomain(dropdown model)
{
List<dropdown> obj = new List<dropdown>();
using (SqlConnection con = new SqlConnection(conn))
{
try
{
con.Open();
SqlCommand cmd = new SqlCommand("selectDomainName", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
var data = new dropdown();
data.DomainName = ds.Tables[0].Rows[i]["DomainName"].ToString();
obj.Add(data);
}
}
catch
{
}
}
return obj;
在obj
中我获得了所有列值
我的控制器代码
public ActionResult binddropdown(dropdown model1)
{
var x = model1.LoadDomain(model1);
ViewData. = x;
return View(model1);
}
我不知道我是否正朝着方向前进。我是初学者,所以我建议我。
答案 0 :(得分:2)
您可以在viewbag中设置数据,然后在正面,您可以循环访问数据并为您的下拉框指定值。在这里你可以做的是,
public ActionResult binddropdown(dropdown model1)
{
var x = model1.LoadDomain(model1);
viewbag.MyData = x;
return View();
}
并且在前端,您可以从viewbag获取数据(如果需要,使用类型转换转换为适当的类型)并且可以像这样分配给html标签,
@{
var a = (yourobjtypecast) viewbag.MyData ;
<select name="drpId" id="drpId">
<option value="yourvalue"> Select </option>
@foreach (var te in a)
{
<option value='@te.ID.ToString()'>@te.Nam </option>
}
</select>
}
我希望这项工作。