代码之家  ›  专栏  ›  技术社区  ›  Zachary Scott

ASP.NET MVC 2:数据注释或模板:将DDL与其Model.Data选项列表关联的方法?

  •  0
  • Zachary Scott  · 技术社区  · 14 年前

    总结:

    背景:

    StateName 并使用一个名为 StateName.ascx ,它将在找到 州名 财产。布拉德·威尔逊写得很好 here

    设置:

    现在想象一下

    问题:

    所以,问题是局部视图模板 IList<StateName> States 在局部视图模板中填充DDL? deep dive 类似Model.Customer[0].BillingAddress.State的呈现,模板的父视图可能不是顶级视图)。

    另一个角度可能是在类属性上放置某种[Data Annotation],将此可能状态列表与局部视图模板的模型相关联?

    Model.ShoppingCart.Customer.ShippingAddress;
    Model.ShoppingCart.Customer.BillingAddress;
    Model.StateNames;         // IList<StateName>
    Model.MaritalStatusNames; // IList<MaritalStatus>
    Model.GenderNames;        // IList<Gender>
    

    此外,我们可以在一个属性中创建所有DDL数据列表,如 Model.DDLs.StateNames Model.DDLs.GenderNames 等等。?

    1 回复  |  直到 14 年前
        1
  •  1
  •   marcind    14 年前

    我认为简单的答案是部分模板不能访问父级的整个模型,因为它只接收它要处理的子模型。

    在您的情况下(即不改变的事物的全局列表),您总是可以在某个helper对象的静态属性中声明您的列表,这样您就不需要模型实例来访问它。例如,Address对象可以有一个所有状态的静态列表。