2012-11-20 56 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

相關問題