是否可以在mvc 3中将对象作为路由值传递?

Kam*_*ski 2 routes asp.net-mvc-3

我正在尝试重构我的一些代码,我想知道是否有可能是这样的:

这是我的cshtml的一部分:

 <a href="@Url.Action("Vote", "Ideas", new { id = item.Idea.Id, pageMetadata = Model.PageMetadata, numberOfVotes = 2 })">
Run Code Online (Sandbox Code Playgroud)

这是调用动作:

public ActionResult Vote(string id,PageMetadata pageMetadata, int numberOfVotes = 1)
Run Code Online (Sandbox Code Playgroud)

而且PageMetadata是我的课.

当我在cshtml网站中进行debbuding时pageMetadata是正确的,但是当动作正在调用时pageMetadata它正在变为null.我有些愚蠢的错误或者所有想法都错了吗?谢谢你的帮助.

Pan*_*yay 6

查询字符串类似于字典:{key,value}对.因此,您无法在查询字符串中传递类对象.

但是,你可以做的是将你的模型对象的id传递给它,然后使用该id在服务器上加载你的对象.

现在,你正在做一个错误的观念!:-)