我知道这里几乎没有关于DropDownListFor的类似问题,但是没有帮助我......
我在我的项目中使用Entity Framework作为ORM。 EF模型叫做“Stete”。 Stete在名为“Drustva”的EF模型上有外语
现在我正在尝试制作一个用于编辑数据的表单,用于Stete模型。我设法显示所有内容,包括Stete.Drustva.Naziv属性,但我无法在我的处理程序方法[HttpPost]中获取最后一个属性。无论我在下拉列表中选择什么,它总是返回0。
以下是代码:
DrustvaController:
public static IEnumerable<SelectListItem> DrustvaToSelectListItemsById(this KnjigaStetnikaEntities pEntities, int Id)
{
IEnumerable<Drustva> drustva = (from d in pEntities.Drustva
select d).ToList();
return drustva.OrderBy(drustvo => drustvo.Naziv).Select(drustvo => new SelectListItem
{
Text = drustvo.Naziv,
Value = drustvo.Id.ToString(),
Selected = (drustvo.Id == Id)? true : false
});
}
SteteController:
private IEnumerable<SelectListItem> privremenaListaDrustava(int Id)
{
using (var ctx = new KnjigaStetnikaEntities())
{
return ctx.DrustvaToSelectListItemsById(Id);
}
}
public ActionResult IzmijeniPodatkeStete(Int32 pBrojStete)
{
PretragaStetaModel psm = new PretragaStetaModel();
ViewData["drustva"] = privremenaListaDrustava(psm.VratiStetuPoBrojuStete(pBrojStete).Drustva.Id);
ViewData.Model = new Models.Stete();
return View("EditView", (Stete.Models.Stete)psm.GetSteta(pBrojStete));
}
EditView中:
<div class="editor-label">
<%: Html.Label("Društvo") %>
</div>
<div class="editor-field">
<%: Html.DropDownListFor(m => m.Drustva.Naziv, ViewData["drustva"] as IEnumerable<SelectListItem>) %>
<%: Html.ValidationMessageFor(model => model.FKDrustvo) %>
</div>
我很抱歉没有将对象的名称翻译成英文,但他们几乎没有适当的翻译。如有必要,我可以尝试创建类似的例子......
答案 0 :(得分:0)
您是否在视图标记中加入了Html.BeginForm
或Ajax.BeginForm
?这是一种常见的疏忽,可能导致您所指的行为。我无法从您在问题中粘贴的代码中看出来。欢呼。