2013-01-02 58 views
0

我是相當新的ASP.NET MVC4,我有一個搜索/過濾器表單,您可以在多個參數有沒有一種方法可以使用Model類來過濾值?

過濾所以這是我的控制器

public ActionResult Index(string page, int? neighborhoodID, int? accommodationType) { 
... 
} 

我也是這麼想的。我使用Model類爲我的登錄/註冊使用數據註釋和驗證。

有沒有一種方法,我可以使用模型類過濾器值?

現在我只看了必要的參數,並利用它們在我的LINQ查詢來獲取篩選的記錄。

+0

你的問題有點含糊。你現在這樣做的方式有什麼問題? –

+0

嗯,我有一個功能:公共靜態列表<住宿> GetAccommodationsByNeighborhoodIdAndAccType查詢數據庫(與過濾的值),如果我將增加更多的價值,這可能很複雜(INT NID,詮釋accType)。我不知道這是否是這樣做的。 – t0tec

+0

爲什麼不創建一個'InputModel'並將其用作單個參數?我的意思是,具有這些屬性的類,如果你需要其他屬性,你可以添加新的屬性,它會正常工作。 –

回答

1

我想你應該創建一個IndexViewModel

public class IndexViewModel 
{ 
    public int? NeighbourhoodId { get; set; } 
    public int? AccomodationType { get; set; } 
} 

然後加入@model IndexViewModel到您的視圖的頂部

似乎neigbourhoodIdaccomodationType來自下拉菜單,所以地圖視圖模型屬性的下拉菜單

,然後控制器方法將是服用點是這樣的:

public ActionResult Index(string page, IndexViewModel model) 
{ 
    // You can use model.NeighbourhoodId and model.AccomodationType the same way you did with parameters 
} 
+0

好吧,這工作出色! – t0tec

相關問題