0

代わりにテキストベースのリンクに変換したい必要なプロパティの設定範囲でHTMLボタンを設定して機能しています。さらに、HTMLヘルパーとインテリセンスの動作に慣れるために、これらのプロパティをActionLinkに組み込む方法を確認したいと思います。

<input type="button" id="RemoveRegistration_Submit<%=row.ID %>" 
value="Remove From Cart" 
onclick="$('#Step2_RemoveRegistrationForm input[name=id]').val('<%=row.ID %>'); $('#Step2_RemoveRegistrationForm').submit();" 
align="right" />

どうも

4

2 に答える 2

1

ボタンは、JavaScriptがないとリンクのように機能しません。
一般的に-それは悪い習慣です(検索エンジンはあなたのページを正しく索引付けできないなど)。

アンカータグを使用して、ボタンのように見せることをお勧めします。

しかし、本当に必要な場合は、この記事が答えを提供します。

編集:

ごめん。私の答えを少し速すぎて撃ちました。

これはあなたが求めているものではありませんが(HtmlHelperは関与していません)、それが私がこの問題を解決する方法です:

ビューでは、アンカーを定義します(hrefのないアンカーはW3検証に合格します):

<a id='removefromcart_<%=row.ID%>' title='Remove from cart' 
   class='remove-link' />

外部javascriptファイル:

   var onclick = function(event){
        event.preventDefault();
        var link = $(event.targetSource());

        //tag ids should be injected through view asp/cx
        $('#Step2_RemoveRegistrationForm input[name=id]') 
            .val(link.attr('id').split('_')[1])
    };
    $('a[id^=removefromcart]').click(onclick);  

cssで:

 a {cursor:pointer;} /*anchors without href by default haven't pointer*/

HtmlHelpersでjavascriptをいじくり回すのは面倒だと思います。

EDIT2:

アンカーテキストはタグ内で定義されます。私はいつもそれを混乱させます。そして、targetSource()も間違っているようです。それを書き直してみてください:event.targetSource()=>event.target。

于 2009-09-22T10:14:12.103 に答える
0

それほど難しいことではないはずです....しかし、ActionLinkはルートテーブルからリンクを生成する必要があることを意味するため、Html.Linkを意味していると思います。

<%= Html.Link("Remove from Cart", "#", new {onclick = "#Step2_RemoveRegistrationForm input[name=id]').val('<%=row.ID %>'); $('#Step2_RemoveRegistrationForm').submit();"}) %>
  • パラメータ#1: リンクテキスト
  • パラメータ 2: href
  • パラメータ #3: html 属性

    public static string Link(this HtmlHelper htmlHelper, string linkText, string href, object htmlAttributes) {

    TagBuilder tagBuilder = new TagBuilder("a"){ InnerHtml = linkText; }

    tagBuilder.MergeAttributes(htmlAttributes);

    tagBuilder.MergeAttributes("href", href);

    return tagBuilder.ToString(TagRenderMode.Normal);

    }

拡張メソッドを使用するために、ビューで <%@ Import Namespace="xxxxxx" %> することを忘れないでください。

于 2009-09-22T12:11:20.493 に答える