在Html.ActionLink中添加图像

17 html asp.net-mvc html.actionlink razor

我试图在ASP.net MVC(使用razor视图引擎)中创建一个在列表视图和窗口小部件视图之间切换的选项.

但是,我在尝试添加图像时遇到了一些麻烦,并将其缩放到"正确的高度"(与下一个旁边的高度相同).

我想要创建类似的东西:

期望的结果:

-------------------------------------------------- -------------------------------

[?­] List View | [+] Widget View
Run Code Online (Sandbox Code Playgroud)

-------------------------------------------------- -------------------------------

其中[?][+]实际上是小图标图像.

到目前为止的尝试包括:

动作链接类似于:

@Html.ActionLink("List View", "listView",  
    new { @style = "background-image:url('~/Content/Images/listIcon.png')" },null)
Run Code Online (Sandbox Code Playgroud)

只显示文字.

我也尝试过创建动作链接:

<img src="~/Content/Images/listIcon.png" />@Html.ActionLink("List View", "Index")
Run Code Online (Sandbox Code Playgroud)

但这解决了

a)图像不是链接的一部分; 和

b)图像几乎是文本大小的两倍(类似于下图)

 _    _               _    _
|      |             |      |
| icon |             | icon |
|_    _| List View | |_    _| Widget View
Run Code Online (Sandbox Code Playgroud)

我甚至不介意尝试创建它:

替代方案:

-------------------------------------------------- -------------------------------

 _    _               _    _
|      |             |      |
| icon | List View | | icon | Widget View
|_    _|             |_    _| 
Run Code Online (Sandbox Code Playgroud)

如果我不得不给.

有谁知道/建议如何解决/创建这个?

Win*_*Win 31

您可以使用Url.Action作为图像源的超链接和Url.Content.

然后,您可以使用CSS设置外观样式.

在此输入图像描述

<ul class="links">
    <li>
       <a href="@Url.Action("ListView", "Home")" title="List View" class="links">
            <img alt="List View" src="@Url.Content("~/Images/ListView.png")"> 
            List View
       </a>
    </li>
    <li>
       <a href="@Url.Action("WidgetView", "Home")" title="Widget View" class="links">
            <img alt="Widget View" src="@Url.Content("~/Images/WidgetView.png")"> 
            Widget View
       </a>
    </li>
</ul>
<style type="text/css">
    ul.links {
        list-style-type: none;
    }    
        ul.links li {
            display: inline-block;
            border-left: 1px solid black;
            padding-left: 10px;
            margin-left: 10px;
        }    
            ul.links li:first-child {
                border-left: 0;
                padding-left: 0;
                margin-left: 0;
            }
</style>
Run Code Online (Sandbox Code Playgroud)


Rom*_*ias 5

您需要手动创建锚点,并且使用@Html.ActinLink帮助程序...您可以使用@Url.Action帮助程序

<a href="@Url.Action("YourAction", "YourController", null)">
     <img src="yourImageSource"  style="vertical-align: middle; width: 30px;"> List View
<a/> |
<a href="@Url.Action("YourAction", "YourController", null)">
     <img src="yourImageSource" style="vertical-align: middle; width: 30px;"> Grid View
<a/>
Run Code Online (Sandbox Code Playgroud)

可以通过CSS修改图像的大小.

Url.Action为您提供"指向您行动的链接".ActionLink创建一个锚点,其中包含指向操作的链接.

  • 有趣的事实:如果你误读了这个并使用@ Html.Action,事情就会破裂.万岁无限循环! (2认同)