与ASP.NET MVC中的ActionLink等效的映像

Jas*_*orn 47 asp.net-mvc routing

在ASP.NET MVC中,Img标签的Html.ActionLink助手是否相同?

我有一个控制器动作,输出动态生成的JPEG,我想使用相同的Lambda表达式链接到它,因为我使用ActionLink做HREF.

或者,只提供路由URL(再次使用Lambdas指定)的帮助程序也是可以接受的.

编辑:我最初指定我使用预览5,但我发现Beta已经发布.因此,所有版本号都是不必要的信息,因为我可能很快升级:-)

Rob*_*ean 47

您可以使用URL.Action方法

<a href="<%= Url.Action("Create")  %>"><img src="../../Content/Images/add_48.png" /></a>
Run Code Online (Sandbox Code Playgroud)


rea*_*idt 39

这个问题比较老了,我刚刚开始使用ASP.NET MVC,当RC已经出来时,但对于那些像我这样后来发现这个问题的人来说,这可能很有趣:

至少在RC中你可以使用Url.Action()和匿名类型,结果看起来比上面的建议好很多,我想:

<a href="<%= Url.RouteUrl("MyRoute", new { param1 = "bla", param2 = 5 }) %>">
   put in <span>whatever</span> you want, also <img src="a.gif" alt="images" />.
</a>
Run Code Online (Sandbox Code Playgroud)

当然,RouteUrl还有许多其他重载.


ste*_*son 20

Url.Action()将为您提供大多数Html.ActionLink重载的URL,但我认为URL-from-lambda功能目前只能通过Html.ActionLink获得.希望他们在某些时候会为Url.Action添加类似的重载.


Ala*_*ich 8

我使用了一种解决方法为ActionLink放置标记而不是文本,然后将其替换为我的图像代码.像这样的东西:

<%= Html.ActionLink("__IMAGE_PLACEHOLDER__", "Products").Replace("__IMAGE_PLACEHOLDER__", "<img src=\"" + myImgUrl + "\" />")%>
Run Code Online (Sandbox Code Playgroud)

不是最优雅的解决方案,但它有效.


WEF*_*EFX 5

在MVC3中,您的链接如下所示:

<a href="@Url.Action("Create")"><img src="../../Content/Images/add_48.png" /></a>
Run Code Online (Sandbox Code Playgroud)

  • 当然,如果可能的话,不要忘记`img`元素的`alt`属性. (4认同)