从MVC3中的模型列表创建局部视图

时间:2012-11-21 02:26:16

标签: c# asp.net asp.net-mvc-3 entity-framework razor

所以,我在这里上课:

public class Platillo
{
    public virtual int ID { get; set; }
    public virtual String NombrePlatillo { get; set; }
    public virtual int idRestaurante { get; set; }
    public virtual String DescripcionPlatillo { get; set; }
    public virtual bool esAprobado { get; set; }
    public virtual bool esDisponible { get; set; }
    public virtual double precio { get; set; }
    public virtual DateTime vigenciaPlatillo { get; set; }
    public virtual List<ListaIngredientes>  listadeIngredientes { get; set;}
}

我创建了一个强类型的PlatilloController,它可以进行所有基本的CRUD操作。问题是,View会渲染除List之外的所有内容。 我的想法是创建一个List,允许添加新成分(Ingredientes)和每个菜肴(Platillo)的份量(Porciones)。

public class ListaIngredientes
{
    public virtual int ID { get; set; }
    public virtual Ingrediente ingrediente { get; set; }
    public virtual int porciones { get; set; }
}

public class Ingrediente
{
    public virtual int ID { get; set; }
    public virtual String NombreIngrediente { get; set; }
    //...
}

所以,我想的是实现一个PartialView,它可以显示菜肴上每种成分的清单,并允许添加新成分。我到底该怎么做?而且,由于我计划在同一页面上创建和更新新成分,我确信我应该考虑AJAX。我究竟如何使用Ajax创建和显示ListaIngrediente的列表条目?

2 个答案:

答案 0 :(得分:1)

使用部分视图页面的示例,请尝试以下操作:

@model <Project>.Models.Platillo

@foreach(ListaIngredientes ing in listadeIngredientes)
{
      <div>@ing.ID</div>
      <div>@ing.Ingrediente.NombreIngrediente</div>
}

答案 1 :(得分:0)

我对你的设计感到有点困惑,为什么你会使用公开名单

virtual List<ListaIngredientes> listadeIngredientes { get; set;}我会开始,但首先在ListaIngredientes中创建一个与Platillo相匹配的Platillo外键,如PlatilloID,所以现在你将拥有一个与Platilloios及其ingridients相匹配的ListaIngredientes列表。

然后确定你可以创建一个ajax局部视图,你可以在其中添加Ingrediente,然后在另一个单词的单独视图中将特定的ingridients与Platilloio匹配,分别创建ingridiets和Platilloio,然后在另一个视图中添加来自ingridients的ingridiets您的Ingridients表到Pelatio。