2011-02-03 85 views
4

首先,我是MVC的新手 - 嘗試ASP.NET MVC3。如何在MVC3中使用參數和列表創建表單

我想建立一個頁面,看起來像這樣:

開始日期:[日期框]結束日期:[日期 盒] [搜索按鈕]

結果表]

用戶輸入開始和結束日期(必須驗證),然後他們單擊搜索按鈕並返回匹配結果。

那麼,我該如何構造?這裏是我的模型類的想法:

public class ResultSearchModel 
{ 
    [Required] 
    [DataType((DataType.DateTime))] 
    [DisplayName("Start Date")] 
    public DateTime StartDate { get; set; } 

    [Required] 
    [DataType((DataType.DateTime))] 
    [DisplayName("End Date")] 
    public DateTime EndDate { get; set; } 

    public List<ServiceEntry> ServiceEntries { get; set; } 
} 

public class ServiceEntry 
{ 
    public DateTime Date { get; set; } 
    public string Code { get; set; } 
    public string Details { get; set; } 
} 

所以,我的索引控制器動作應該contruct的ResultSearchModel的實例,並返回與此模型的視圖?

我是在一個視圖中執行此操作,還是必須對列表部分進行局部視圖?

回答

3

我會用一個顯示模板的結果:

@Html.DisplayFor(x => x.ServiceEntries) 

,然後你可以定義將被渲染爲ServiceEntries集合中的每個元素相應的模板(~/Views/Home/DisplayTemplates/ServiceEntry.cshtml)。所以你將有一個控制器有兩個動作:一個渲染表單,一個從表單接受POST並處理搜索。在第一個操作中,您只需將ServiceEntries屬性留空即可返回視圖模型,以便不顯示任何結果,並在第二個操作中填充此屬性。我也會使用IEnumerable<ServiceEntry>作爲類型。

+0

感謝達林 - 我有點這個工作。因此,我的ServiceEntry.cshtml模板將只是一個表格行,每個屬性都有一個td。有沒有一種很好的方式來生成這個(即添加視圖...)還是我必須手動編碼? – 2011-02-03 20:24:40

相關問題