2009-01-27 59 views
4

我有ActionLink的问题。 我想传递给我的ActionLink的参数为我MessageController,编辑动作:产生的财产以后这样的/ MessagesController /编辑/ 4如何将数据作为参数绑定到ActionLink?

所以我有一个绑定表达式ListView控件:

以及如何将此ID传递给ActionLink作为我的Controller Edit操作的参数? 这不起作用: ,NULL)%>
+1

我不知道为什么没有人露出他在这里使用一个容器中的问题,这是什么容器是什么?我认为他试图以某种方式混合使用ASP.NET和ASP.NET MVC,只是感觉如此。他应该在模型中提供他的数据。这就是他不接受解决方案的原因。 – mare 2010-04-23 16:55:45

+0

同意 - 如果你发现自己来到这个问题,并做类似的事情..停止..并拾取MVC书..或至少做更多的MVC阅读.. – 2011-04-15 01:56:58

回答

2

试试这个

<%= Html.ActionLink("my link", "Edit", "Message", new { id = ((Message)Container.DataItem).ID }) %> 

你需要把它放在的RouteData得到它展现出来。注意我假设ID是您的路线定义中的一个路线部分。

6

在MVC中,您不应该以您拥有的方式从视图中绑定数据。您想要传递给ActionLink方法的数据需要添加到控制器中的ViewData中。然后在视图中,从ViewData的检索:

<%= Html.ActionLink("My Edit Link", "Edit", "Message", new { id = ViewData["id"] }) %> 
+0

不知道是否因为它不在ViewData中,但当我用int参数做这件事时,我得到一个不好的链接。下面的代码使用额外的“null参数”工作,但是 <%= Html.ActionLink(“text”,“action”,“controller”,new {...},null)%> – t3rse 2010-04-23 12:31:02

3
<%= Html.ActionLink("My Edit Link", "Edit", "Message", new { id = ((Message)Container.DataItem).ID }, null) %> 
相关问题