0

我知道关于 DropDownListFor 的类似问题很少,但都没有帮助我......

我在我的项目中使用实体框架作为 ORM。有一个名为“Stete”的 EF 模型。Stete 在名为“Drustva”的 EF 模型上有 Foreign

现在我正在尝试为 Stete 模型制作一个用于编辑数据的表单。我设法显示了所有内容,包括 Stete.Drustva.Naziv 属性,但我无法在处理程序方法 [HttpPost] 中获得最后一个属性。无论我在下拉列表中选择什么,它总是返回 0。

这是代码:

德鲁斯瓦控制器:

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

Stete控制器:

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

编辑视图:

        <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>

我很抱歉没有将物品的名称翻译成英文,但它们几乎没有适当的翻译。如有必要,我可以尝试创建类似的示例...

4

1 回答 1

0

您是否包含Html.BeginFormAjax.BeginForm在您的视图标记中?这是一个常见的疏忽,可能会导致您所指的行为。我无法从您粘贴在问题中的代码中看出。干杯。

于 2010-04-23T12:56:15.423 回答