ActionLink发送复杂类型的模型

时间:2010-05-15 01:39:23

标签: c# asp.net-mvc

我正在尝试对“高级搜索”的结果进行分页,我有一个代表搜索选项的复杂模型;

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中展开,我得到的只是类名,因此我失去了大部分搜索单击链接以更改为其他页面时的选项。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在某处,您的Options对象将被用作RouteValueDictionary构造函数的参数:

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

该构造函数中的代码不会递归地进入嵌套对象的属性。它只会反映您房产的第一层。

答案 1 :(得分:0)

我最终创建了一个重写的ToString()方法,该方法将复杂模型转换为查询字符串。然后创建了一个Flat模型,它映射了查询字符串和一个转换方法,以便弹出我原来的复杂对象。

我不会撒谎......这是很多黑客攻击。

但这一切都有效,而且相当可靠。