如何制作下拉列表? [已编辑 - 几乎正常工作的代码]
查看:
<div class="editor-label">
Firma
<div class="editor-field">
@Html.DropDownListFor(x => x.ID_firma, Model.firmaList)
@Html.ValidationMessageFor(model => model.nazwa)
</div>
型号:
public class produktModel
{
[Required(ErrorMessage="Proszę podać nazwę.")]
public string nazwa { get; set; }
[Required(ErrorMessage = "Proszę podać ilść produktu.")]
public decimal ilosc { get; set; }
[Required(ErrorMessage = "Proszę podać jednostkę produktu (np. kg, l, szt.).")]
public string jednostka { get; set; }
[Required(ErrorMessage = "Proszę podać cenę produktu.")]
public decimal cena { get; set; }
public string ID_firma { get; set; }
public IEnumerable<SelectListItem> firmaList { get; set; }
}
控制器:
public ActionResult dodaj()
{
var firma = baza.Firmas;
var model = new produktModel
{
firmaList = firma.AsEnumerable().Select(x => new SelectListItem
{
Value = x.ID_firma.ToString(),
Text = x.nazwa
})
};
return View(model);
}
[HttpPost]
public ActionResult dodaj(produktModel model)
{
Produkt prod = new Produkt();
prod.nazwa = model.nazwa;
prod.ilosc = model.ilosc;
prod.jednostka = model.jednostka;
prod.cena = model.cena;
prod.ID_firma = model.ID_firma;
baza.Produkts.InsertOnSubmit(prod);
baza.SubmitChanges();
return RedirectToAction("zarzadzaj_produktami", "Produkt");
}
它几乎可以工作...... 我只有一个问题(我希望)...... 值是字符串,我将他的值保存到数据库...(我现在不怎么写它...)
prod.ID_firma = model.ID_firma;
prod.ID_firma是int。 model.ID_firma是这个值,它是字符串。所以我有一个错误:
错误1无法将类型'string'隐式转换为'int?'
答案 0 :(得分:1)
稍微改变你的模型,我假设列名根据你的代码改变它们
public class produktModel
{
[Required]
public string name { get; set; }
public decimal price { get; set; }
[Required]
public int companyID {get; set;}
public List<Company> compList {get; set;}
}
public class Company{
public int CompanyID {get;set;}
public string CompanyName {get;set;}
}
ActionResult应该看起来像
public ActionResult add()
{
produktModel model = new produktModel();
model.compList= (from b in base.Companies
select new Company{
CompanyID = b.CompanyID,
CompanyName = b.CompanyName
}).ToList();
return View(model);
}
在你的(强类型)视图中
@model produktModel
....
<div class="editor-label">
Company
<div class="editor-field">
@Html.DropDownListFor(model => model.companyID,
new SelectListItem(model.compList,
"CompanyID ",
"CompanyName "))
@Html.ValidationMessageFor(model => model.company_name)
</div>
...
答案 1 :(得分:0)
你的问题不够明确。
您可以使用telerik combox \ dropdown列表或默认的mvc下拉列表。你可以在google上找到很多例子。
Telerik写这样的东西:
@(Html.Telerik().ComboBox()
.Name("ComboBox")
.BindTo(new SelectList("CompanyID", "CompanyName")))
有关详细信息,请参阅this Telerik demo。