2012-11-20 22 views
0

我的应用程序将用于接受/编辑保修索赔。在保修索赔中,用户可以提交多个“零件”作为索赔的一部分。我的模型包含一个IEnumerable < WarrantyParts的> - 我已经创建了包含以下的视图模型:ASP.NET MVC视图支持添加数据集合

public class WarrantyClaimViewModel 
{ 
    public int WarrantyClaimId { get; set; } 

    public int UserId { get; set; } 
    public DateTime DateCreated { get; set; } 

    [Display(Name = "Claim Status")] 
    public string Status { get; set; } 

    ... other model data omitted for brevity ... 

    public IEnumerable<WarrantyClaimPart> WarrantyClaimParts { get; set; } 
} 

我的问题是我怎么构建一个视图,将允许用户填写保修的集合部分?他们可以输入一个或100个单独的部分;我想创建一个视图,用户可以点击“添加零件”按钮并出现一组新的文本框。也就是说,我想动态地将文本框添加到已存在的视图中,而不是仅针对保修部件的单独视图。

部分视图是否符合这个要求,还是应该为零件创建一个单独的视图(而不是我想要做的,但可能是最好的方法)?我在这里寻找最佳做法。一个例子会很棒 - 我喜欢视觉效果。

谢谢!

+0

您是在寻找一个Ajax解决方案,或者当您单击“添加零件”时,它会向服务器发送请求并呈现新视图? –

+0

Ajax解决方案将更可取。 – SFAgitator

回答

1

局部视图肯定会适合您正在尝试执行的操作 - 您可以强制将视图键入WarrantyClaimParts集合。

作为该替代方案的一部分(我喜欢因为UI改进)的一部分是使用类似Knockout.js的东西来允许编辑模型并一次提交。看看教程Working with Lists and Collections以及教程Loading and Saving Data。有一些非常好的例子(包括代码!)在那里应该让你确切地知道你需要什么。它的可用性非常好,而且使用起来非常简单。 (根据您的意见,这符合您的Ajax解决方案要求。)

+0

很好的例子,它看起来像这将符合我的需要。真棒!谢谢! – SFAgitator

相关问题