Asp.Net MVC动态绑定多个到多个实体

时间:2014-05-16 05:24:28

标签: asp.net-mvc

创建视图以捕获多对多关系时遇到问题。

以下是模型......

我要为其创建视图的模型...

public class Service : Entity
{
    [ForeignKey("ServiceType")]
    public int ServiceTypeId { get; set; }

    [Required]
    public string ProviderAccountName { get; set; }

    public virtual ServiceType ServiceType { get; set; }

    public virtual ICollection<Parameter> Parameters { get; set; }// this thing right here I want to capture many Parameters dynamically added by the user

    public Service()
    {
        this.Parameters = new List<Parameter>();
    }
}

现在真正的问题是参数本身有自己的CRUD操作视图,并将从那里创建。我只想将参数绑定到正在创建的Service实体,如果我们给出了一个列出了所有参数的表,并且复选框允许用户检查他想要包含的参数,那将会容易得多。但是在我的情况下,用户必须单击添加链接,生成新参数行并应用Select2自动完成,其中可以选择该参数。 我想知道我是否可以使用BeginCollectionItem但是我无法弄清楚如何这样做,因为当我尝试时,它给了我Paramater中必需字段的ModelErrors,好像它正在创建要插入DB的新参数... < / p>

编辑器的部分视图如下......

@using (Html.BeginCollectionItem("Parameters"))
{
    <div style="width: 100%;">
        @Html.TextBoxFor(m => m.CategoryID, new { @class = "ParamCategoryId" })
        <span>&nbsp;</span>
        @Html.TextBoxFor(m => m.ID, new { @class = "ParamId" })
        <span>&nbsp;&nbsp;&nbsp;</span>
        <span id="paramDesc"></span>
        <span>&nbsp;&nbsp;&nbsp;</span>
    </div>
}

我猜BeginCollectionItem在这里没有帮助我,另外我面临的问题很多,因为我们可以看到我正在使用select2插件,已经使用类将它应用于元素,这是不行的正如预期的那样,每当生成一个新行时,所有上面的行值都会重置为空白,因为“初始化”和“初始化”。被触发。

有没有更好的方法来做到这一点,我觉得可能最终使事情变得复杂...... ???

0 个答案:

没有答案