2010-05-15 37 views
1

我想分頁「高級搜索」的結果,我有一個複雜的模型,代表搜索選項;ActionLink發送一個複雜類型的模型

int ZipCode 
int MinAge 
int MaxAge 
Availability 
    bool Monday 
    bool Tuesday 
    ... 
    bool Friday 
Requirements 
    bool FirstAid 
    bool DriversLicense 

我正在使用;

<%: Html.ActionLink("Next »", "Save", "Notification", Model.options)%> 

在第一水平的情況正確地發送的所有數據,但是任何一個子對象(或可用性要求的)是不是在URL擴大,我得到的是類的名字,所以我失去了當我點擊鏈接更改到不同的頁面時,大多數搜索選項。

有什麼想法?

+1

看看這是否有幫助 http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx – 2010-05-15 04:40:23

回答

0

我最終創建了一個重載的ToString()方法,它將複雜模型轉換爲查詢字符串。然後創建了一個Flat模型,它映射查詢字符串和一個convert方法,以便將原始複雜對象彈出。

我不會說謊...這是很多黑客攻擊。

但它一切正常,而且相當可靠。

0

某處你的選擇對象被作爲參數傳遞給RouteValueDictionary構造線:

http://msdn.microsoft.com/en-us/library/cc680272(v=VS.100).aspx

在構造函數中的代碼不遞歸下降到您的嵌套對象的屬性。它只會反映您的物業的第一級。

+0

是的,我知道這是事實......我正在尋找解決方案。 – 2010-05-17 06:11:13

+0

@Xenph Yan「任何想法?」讓我相信你不明白髮生了什麼事。 – jfar 2010-05-17 14:17:45