最新の(RC1)リリースのASP.NET MVCでは、リンクの代わりにボタンまたはイメージとしてレンダリングするためにHtml.ActionLinkを取得するにはどうすればよいですか?Html.ActionLinkはリンクではなくボタンまたは画像として
答えて
遅れても応答は簡単ですが、htmlAttributesオブジェクトにCSSクラスを適用するだけで済みます。
<%= Html.ActionLink("Button Name", "Index", null, new { @class="classname" }) %>
してから、スタイルシート
a.classname
{
background: url(../Images/image.gif) no-repeat top left;
display: block;
width: 150px;
height: 150px;
text-indent: -9999px; /* hides the link text */
}
これは完璧に動作しますが、リンク先の場所によってはnullをrouteValuesオブジェクトに置き換える必要があります。 –
+1/SEOにアクセスできるので+1 –
アクションリンクパラメータで割り当てたボタン名文字列をどのように処理しますか?これは私にとってはうまくいかなかった。 – ZVenue
Html.ActionLink
でこれを行うことはできません。 Url.RouteUrl
を使用し、URLを使用して必要な要素を作成する必要があります。
こんにちは、申し訳ありませんが、私はMVCを非常に新しくしています。 Url.RouteURLを使用して画像を取得するにはどうすればよいですか? – uriDium
私が言ったのは、ActionLinkへの簡単な呼び出しで入れ子になったimgタグ(またはボタンタグ)を生成できないということです。もちろん、タグ自体をスタイリングするCSSはそれを回避する方法ですが、imgタグを取得することはできません。 –
Mehrdadの言う通り、またはHtmlHelper
のような拡張メソッドのURLヘルパーを使用して、hereと記載し、すべてのリンクのレンダリングに使用できる独自の拡張メソッドを作成します。
それから、すべてのリンクをボタン/アンカーまたは好みのものとして簡単にレンダリングすることができます。また、実際にリンクを作成する方法が実際には好きであることがわかったときには、
でも、後で応じてクラスを作成しますが、私はちょうど同様の問題に遭遇したとImage link HtmlHelper extension自分自身を書いてしまいました。
私のブログでは、上のリンクでその実装を見つけることができます。
誰かが実装を捜している場合に備えて追加されました。
私はこのようなUrl.Action()とUrl.Content()を使用したい:厳密Url.Contentのみパス化のために必要とされ、話す
<a href='@Url.Action("MyAction", "MyController")'>
<img src='@Url.Content("~/Content/Images/MyLinkImage.png")' />
</a>
が本当にあなたの答えの一部ではありません質問。
新しいRazorビューの構文を使用する必要があることを指摘してくれた@BrianLeggに感謝します。例はそれに応じて更新されました。
そのためにHTMLヘルパーが必要な場合:http://www.fsmpi.uni-bayreuth.de/~dun3/archives/asp-net-mvc-3-html-actionlink-image- imageactionlink-improved/483.html –
これは完全に機能します。 MVC5では構文が変更されており、およびである必要があります。ありがとう – BrianLegg
それを指摘してくれてありがとう。例を更新しました。 – jslatts
Url.Action()
はあなたのHtml.ActionLink
のほとんどのオーバーロードのために裸のURLを取得しますが、私はURL-from-lambda
機能は、これまでHtml.ActionLink
を通じてのみ利用可能だと思います。うまくいけば、彼らはある時点でUrl.Action
に同様のオーバーロードを追加します。
は、単純な私を呼び出して、私はちょうど行います
<a href="<%: Url.Action("ActionName", "ControllerName") %>">
<button>Button Text</button>
</a>
そして、あなただけのハイパーリンクのハイライトの世話をします。私たちのユーザーはそれが大好きです:)
私のために働かなかった。すなわち、それはちょうどフォームを提出しました。 – Slider345
@Benこれは多くの票を持っていない1つの理由は、それは他の答えよりもずっと後に答えられたということです。私はそれを投票しようとしていたが、@ Slider345が言ったことをテストし、IE 7または8でこれがうまくいかないことを確認できる。いずれにしても、あなたがそれを使うことを選択した場合、その愚かな下線を取り除くためにリンク(ホバーとアクティブ)を 'text-decoration:none 'に置き換えます。これは、一部のブラウザ(Firefox 11.0の場合)に必要です。 – Yetti
しかし、要素の中にボタンを入れ子にすることはできません。その逆もあります。少なくともHTML5でそれを行う有効な方法ではありません。 –
ちょうど見つけたthis extension - それは簡単で効果的です。
@using (Html.BeginForm("DeleteMember", "Member", new { id = Model.MemberID }))
{
<input type="submit" value="Delete Member" onclick = "return confirm('Are you sure you want to delete the member?');" />
}
ただ単に:
<button onclick="@Url.Action("index", "Family", new {familyid = Model.FamilyID })">Cancel</button>
<button onclick="location.href='@Url.Action("NewCustomer", "Customers")'">Checkout >></button>
これはIE10で私にとって役に立ちました。簡単なリンクのためにインラインJavaScriptを使用する必要はありませんが、画像ではなくボタンを使いたい場合には、これは良い解決策です。 –
(確かに、私はOpera、Safari、Chrome、Firefoxでそれをテストしてうまくいきました) –
私はそれを行っている方法は、ActionLinkのと別々にイメージを持っていることです。 アクションリンクイメージを非表示に設定して とし、jQueryトリガーコールを追加しました。これは回避策です。
'<%= Html.ActionLink("Button Name", "Index", null, new { @class="yourclassname" }) %>'
<img id="yourImage" src="myImage.jpg" />
トリガ例:パトリックの答えから
$("#yourImage").click(function() {
$('.yourclassname').trigger('click');
});
借入は、私はこれを行うために持っていたことが分かった:
<button onclick="location.href='@Url.Action("Index", "Users")';return false;">Cancel</button>
は、フォームのPOSTメソッドを呼び出さないようにします。
イメージとして表示するリンクを作成する方法はたくさんありますが、ボタンとして表示されるものはありません。
私はこれを行うことが判明した良い方法があります。その少しハッキーですが、それは動作します。
ボタンと別のアクションリンクを作成するだけです。 cssを使用してアクションリンクを非表示にします。ボタンをクリックすると、アクションリンクのクリックイベントを発生させることができます。
<input type="button" value="Search" onclick="Search()" />
@Ajax.ActionLink("Search", "ActionName", null, new AjaxOptions {}, new { id = "SearchLink", style="display:none;" })
function Search(){
$("#SearchLink").click();
}
は、それはあなたがボタンのように見える必要があるのリンクを追加し、このたびを行うにはお尻の痛みかもしれないが、それは、所望の結果を達成ありません。
これは遅い回答ですが、これが私のActionLinkをボタンにする方法です。ブートストラップを使っているので便利です。私たちが使用している唯一の翻訳者から@Tを気にしないでください。
@Html.Actionlink("Some_button_text", "ActionMethod", "Controller", "Optional parameter", "html_code_you_want_to_apply_to_the_actionlink");
上記は、このようなリンクを与え、それが下図のようになります。
私の見解ではlocalhost:XXXXX/Firms/AddAffiliation/F0500
:
@using (Html.BeginForm())
{
<div class="section-header">
<div class="title">
@T("Admin.Users.Users")
</div>
<div class="addAffiliation">
<p />
@Html.ActionLink("" + @T("Admin.Users.AddAffiliation"), "AddAffiliation", "Firms", new { id = (string)@WorkContext.CurrentFirm.ExternalId }, new { @class="btn btn-primary" })
</div>
</div>
}
・ホープこれは誰か
を支援しますクールな作品!素敵でシンプルな、htmlAttribute 'new {@ class =" btn btn-primary "})' + one – Irfan
リンクを使用したくない場合は、ボタンを使用してください。あなたにも、ボタンに画像を追加することができます。
<button type="button" onclick="location.href='@Url.Action("Create", "Company")'" >
Create New
<img alt="New" title="New" src="~/Images/Button/plus.png">
</button>
タイプは、=「ボタン」はではなく、フォームを送信するあなたのアクションを実行します。
<li><a href="@Url.Action( "View", "Controller")"><i class='fa fa-user'></i><span>Users View</span></a></li>
使用FORMACTION
<input type="submit" value="Delete" formaction="@Url.Action("Delete", new { id = Model.Id })" />
は、これは私がスクリプトなしでそれをやった方法ですリンクしてアイコンを表示するには:
@using (Html.BeginForm("Action", "Controller", FormMethod.Get))
{
<button type="submit"
class="btn btn-default"
title="Action description">Button Label</button>
}
同じですが、パラメータと確認をダイアログ:
@using (Html.BeginForm("Action", "Controller",
new { paramName = paramValue },
FormMethod.Get,
new { onsubmit = "return confirm('Are you sure?');" }))
{
<button type="submit"
class="btn btn-default"
title="Action description">Button Label</button>
}
あなたはこれが最短とされ、ブートストラップの使用私のコール
@Html.ActionImage(null, null, "../../Content/img/Button-Delete-icon.png", Resource_en.Delete,
new{//htmlAttributesForAnchor
href = "#",
data_toggle = "modal",
data_target = "#confirm-delete",
data_id = user.ID,
data_name = user.Name,
data_usertype = user.UserTypeID
}, new{ style = "margin-top: 24px"}//htmlAttributesForImage
)
を見て取り、あなたのビューでそれを使用
public static class HtmlHelperExtensions
{
public static MvcHtmlString ActionImage(this HtmlHelper html, string action, object routeValues, string imagePath, string alt, object htmlAttributesForAnchor, object htmlAttributesForImage)
{
var url = new UrlHelper(html.ViewContext.RequestContext);
// build the <img> tag
var imgBuilder = new TagBuilder("img");
imgBuilder.MergeAttribute("src", url.Content(imagePath));
imgBuilder.MergeAttribute("alt", alt);
imgBuilder.MergeAttributes(new RouteValueDictionary(htmlAttributesForImage));
string imgHtml = imgBuilder.ToString(TagRenderMode.SelfClosing);
// build the <a> tag
var anchorBuilder = new TagBuilder("a");
anchorBuilder.MergeAttribute("href", action != null ? url.Action(action, routeValues) : "#");
anchorBuilder.InnerHtml = imgHtml; // include the <img> tag inside
anchorBuilder.MergeAttributes(new RouteValueDictionary(htmlAttributesForAnchor));
string anchorHtml = anchorBuilder.ToString(TagRenderMode.Normal);
return MvcHtmlString.Create(anchorHtml);
}
}
私の実装では、独自の拡張メソッド
テイク外観を作成することができますダイナミックボタンとして表示されるコントローラーアクションへのリンクを作成する最もクリーンな方法:
<a href='@Url.Action("Action", "Controller")' class="btn btn-primary">Click Me</a>
またはHTMLヘルパーを使用する:(限り、あなたはブートストラップに差し込まれているよう - あなたはおそらく持っている)ボタンにあなたのHtml.ActionLinkを作る行うに
@Html.ActionLink("Click Me", "Action", "Controller", new { @class = "btn btn-primary" })
簡単な方法は、このようなものです:
@Html.ActionLink("Button text", "ActionName", "ControllerName", new { @class = "btn btn-primary" })
- 1. Html.ActionLink画像ボタン
- 2. 画像はリンク
- 3. は、画像リンク
- 4. 画像をポップアップしてjavascriptまたはjQueryとリンクする方法は?
- 5. 次回または前のボタンをクリックしなくても、画像を繰り返しスクロールできます。
- 6. 画像またはボタンをクリックしてFBML壁柱
- 7. 画像付きボタン、画像をクリックしたときにボタンコマンドが起動しないのはなぜですか?
- 8. ASP.NET MVC 3 RC Html.Actionlinkは、次のようになりますリンク
- 9. ボタン用のテキストではなく画像を使用できますか?
- 10. jqueryの画像リンクは
- 11. 画像を挿入した後にボタンが白くなる
- 12. WPFは、画像ボタンを
- 13. 画像とボタン
- 14. リンクを画像「ボタン」に変える
- 15. PHP - 数式は画像付きで投稿したくない
- 16. ASP.NET MVCでHtml.ActionLink <TController>はどうなりましたか?
- 17. JSP - 画像ボタンをクリックすると画像になります
- 18. ASP.NET MVC Html.ActionLink CSS背景画像
- 19. ポップアップ画像をクリックした後、送信ボタン用の画像と
- 20. 画像がInternet Explorerでリンクとして表示されない
- 21. ボタンまたはリンクをクリックしてクッキーに保存します
- 22. PHPで変数を渡すだけでなく、リンクとしてボタンを使うことはできますか?
- 23. CakePHP Paginator画像とリンクしますか?
- 24. ポスト画像だけでなく、マグニフィックポップアップですべての画像を開くようにしました
- 25. リンクまたは画像preg/eregを置き換えますか?
- 26. ブラウザは画像よりも速く画像をロードします。
- 27. CSS-ターゲットテキストのリンクは、ホバー上の下のボーダーとリンクしますが、ボーダーのない画像リンク
- 28. Base64でエンコードされた画像とリンクをWebページまたはCSSから置き換える/取り除く
- 29. android:MediaPlayerを使用したSurfaceViewで透明なボタンとしての画像
- 30. uiimageviewではなくuiimageをローテーションします。画像のみ
MVC 3.0ではこのように試すことができます詳細情報http://mycodingerrors.blogspot.com/2012/08/actionlink-with-image-in-aspnet-mvc-3.html – lasantha
これを「適切に」実行するのに数時間を費やしました。 'AjaxHelper'を' ActionButton'で拡張することによって)私は以下でそれを共有すると考えました。 –
7年後、この質問はまだアップボートを取得していることは私に陽気です。明らかに2016年にこれを行うための単純で直感的な方法はまだありません。 –