【问题标题】:MVC populating dropdown in Edit ActionMVC 在编辑操作中填充下拉列表
【发布时间】:2023-03-03 05:24:27
【问题描述】:

我对在 MVC 中制作 DropdownList 感到困惑。让我们从一个简单的案例开始。在地址视图中,我有一个城市文本框和一个州下拉菜单。我用 Linq to SQL 制作的模型地址表具有以下属性:

Public string City{get;set;}
Public string State{get;set;}

和另一个带有状态的表。 在我的控制器中,我做了以下方法:

public static SelectList getLang(string index)
{

       using (namespace.DB db = new namespace.DB())
         {
            List<namespace.Model.tbl_State> state= (from S in db.tbl_State orderby   L.Name select L).ToList();
            SelectList sel = new SelectList(state, "ID", "Name", index);
            return sel;
        }
    }

编辑的操作结果如下:

    public ActionResult Edit(int id)
    {
        using (namespace.DB db = new namespace.DB())
        {
            namespace.Model.tbl_Address add= db.tbl_Address.Single(T => T.ID == id);

            return View(add);
        }
    }

现在如何将所有这些方法放在一起。我想在我的视图中显示其下拉列表中的城市和州,并选择 CA id。任何帮助将不胜感激。

【问题讨论】:

    标签: asp.net-mvc model-view-controller


    【解决方案1】:

    首先我会先阅读一些关于 MVC 的教程或书籍:

    https://stackoverflow.com/questions/240905/best-asp-net-mvc-book

    您应该创建视图模型(首先阅读视图模型),它可能如下所示:

    class AddressEditModel
    {  
        tbl_Address Address;
        List<tbl_State> States;
    }
    

    那么你必须从 Linq 到 SQL 构建这个模型:

    public AddressEditModel ConstructAddressEditModel(int addressId)
    {
        var model = new AddressEditModel();
        using (namespace.DB db = new namespace.DB())
        {
             model.States = state= (from S in db.tbl_State orderby L.Name select s).ToList();
             model.Address = db.tbl_Address.Single(T => T.ID == addressId);
        }
    }
    

    然后你的编辑方法:

    public ActionResult Edit(int id)
    {
        var model = ConstructAddressEditModel(id);
        return View(model);
    }
    

    然后将您的视图声明为:

    System.Web.Mvc.ViewPage<AddressEditModel>
    

    并在您的视图中使用Html.DropDownModel.States

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      相关资源
      最近更新 更多