我有一个视图模型与过滤器属性,有,我用它来筛选我的数据如何使用属性创建的ActionLink的视图模型
例如,许多特性:
class MyViewModel : IHasFilter
{
public MyData[] Data { get; set; }
public FilterViewModel Filter { get; set; }
}
class FilterViewModel
{
public String MessageFilter { get; set; }
//etc.
}
能正常工作时,使用我的视图。我可以设置Model.Filter
的属性,并将它们传递给控制器。我现在想要做的是创建一个ActionLink
,它有一个与上述格式一致的查询字符串。
从上面我查看生成的查询字符串看起来是这样的:
http://localhost:51050/?Filter.MessageFilter=Stuff&Filter.OtherProp=MoreStuff
我需要生成一个不同的视图用于在云上面的查看网格每一行ActionLink的。
我曾尝试:
Html.ActionLink(
item.Message,
"Index",
"Home",
new { Filter = new { MessageFilter = item.Message, }, },
null);
我也试过routeValues
参数设置为:
new MyViewModel { Filter = new FilterViewModel { MessageFilter = item.Message, }, },
但这些不生成查询字符串像上面一个。
+1好问题 – 2012-04-04 12:59:37
感谢您的编辑;我重构了答案,并在替换中忘记添加'前缀'! – 2012-04-04 13:22:21
@AndrasZoltan没问题。 – DaveShaw 2012-04-04 13:28:58