代码之家  ›  专栏  ›  技术社区  ›  Eedoh

如何在ASP.NET MVC2中从DropDownlist for html helper中检索值?

  •  0
  • Eedoh  · 技术社区  · 15 年前

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

    现在我要做一个表格,用来编辑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
            });
        }
    

            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>
    

    对不起,我没有把这些物品的名称译成英文,但它们几乎没有合适的译文。如果有必要,我可以尝试创建类似的例子。。。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Jay Shanker    15 年前

    你包括了吗 Html.BeginForm Ajax.BeginForm 在你看来?这是一个常见的疏忽,可能会导致你所指的行为。我从你在问题上贴的密码看不出来。干杯。