6

html.actionlinkに画像を挿入する方法-asp.netmvc?

私はそうしましたが、うまくいきません。

<a href="<%= Html.ActionLink("search", "Search", new { searchText = "txtSearch" }, null); %>">
        <img alt="searchPage" style="vertical-align: middle;" height="17px"
            src="../../Stylesheets/search.PNG" title="search" />

4

5 に答える 5

14

ActionLinkあなたはヘルパーを完全に誤用しています。ヘルパーは実際に<a href=".." ></a>タグ全体を生成します。

この場合に本当に使用したいのは (独自に作成したヘルパーは別として)、次のとおりです。

<a href="<%= Url.Action("Search", new { searchText = "txtSearch" }) %>">
    <img alt="searchPage" style="vertical-align: middle;" height="17px"
        src="../../Stylesheets/search.PNG" title="search" />
</a>
于 2010-09-08T13:06:58.823 に答える
12

@Trimack は MVC2 で 100% 正しいです。人々が MVC3 に相当するものを探しているなら、ここにあります...

<a href="@Url.Action("Search", new { searchText = "txtSearch" })">
    <img alt="searchPage" style="vertical-align: middle;" height="17px" src="../../Stylesheets/search.PNG" title="search" /> 
</a> 
于 2011-05-10T21:04:17.970 に答える
1

複数の画像を表示したい場合は、以下に示すようHtml.ActionLinkにプロパティを使用できます。Viewこのサンプルでは、​​[アクション] 列の下のボタンとして、画像の詳細/編集/削除を使用します。

注:と入力しTitle、プロジェクトに応じControllerAction名前を付けHtml.ActionLinkます。空のタイトルを使用したい場合は、単純に「 」と入力してください。

....
//for using multiple Html.ActionLink in a column using Webgrid
grid.Column("Action", format: (item) =>
 new HtmlString(
       Html.ActionLink("Show Details", "Edit", "Admin", new
       {
           applicantId = item.ApplicantID,               
           title = "Detail",
           @class = "icon-link",
           style = "background-image: url('../../Content/icons/detail.png')"
       }, null).ToString() +
       Html.ActionLink("Edit Record", "Edit", "Admin", new
       {
           applicantId = item.ApplicantID, 
           title = "Edit",
           @class = "icon-link",
           style = "background-image: url('../../Content/icons/edit.png')"
       }, null).ToString() +
       Html.ActionLink("Delete Record", "Edit", "Admin", new
       {
           applicantId = item.ApplicantID,
           title = "Delete",
           @class = "icon-link",
           style = "background-image: url('../../Content/icons/delete.png')"
       }, null).ToString()
 )
)
....


<style type="text/css">
    a.icon-link {
        background-color: transparent; 
        background-repeat: no-repeat; 
        background-position: 0px 0px;
        border: none;
        cursor: pointer; 
        width: 16px;
        height: 16px;
        margin-right: 8px; 
        vertical-align: middle;
    }
</style>

完全な例については、次を参照してください: cshtml ビューで WebGrid を使用する方法は?

よろしく。

于 2013-11-03T10:18:17.460 に答える
1

このソリューションのヘルパーを作成しました。したがって、actionLink に画像を含めることはできません。しかし、このヘルパー クラスを使用すると、画像を表示するアンカーを簡単に追加できます。

システムを使用して; System.Text を使用します。System.Web.Mvc を使用します。System.Web.Mvc.Html の使用; System.Web.Routing を使用します。System.Web の使用; System.Security.Policy を使用します。

namespace Helpers
{
    public static class ActionWithImageHelper
    {
        public static string AnchorIm(this HtmlHelper helper)
        {

            var builder = new TagBuilder("img");
            var link = helper.ActionLink("[replaceInnerHTML]", "replaceAction").ToHtmlString();


                builder.MergeAttribute("src", "<imagePath>");
                builder.MergeAttribute("alt", "<altText>");

                var renderedLink = link.Replace("replaceAction", "<>");
                link = renderedLink;


            return link.Replace("[replaceInnerHTML]",builder.ToString(TagRenderMode.SelfClosing));
        }

    }
}

幸運を

于 2010-09-09T06:29:42.020 に答える
0

@Html.ActionLink("linkname","action","controller") を使用する代わりに、次を使用できます。

<a href='@Url.Action("action", "controller")'>

「images」は、画像を保存するための私のフォルダーです。@Url.Content()道を知ることです。アクションとそのアクションのコントローラーを に渡すことができます@Url.Action()@Url.Action()と同様に機能し@Html.ActionLink()ます。これで、リンクが画像に置き換えられます。

于 2015-09-29T06:57:21.440 に答える