سؤال

لدي html زر الإعداد وعمل مع مجموعة واسعة من الخصائص المطلوبة التي أود لتحويل أن يستند إلى نص الارتباط بدلا من ذلك.بالإضافة إلى ذلك, لذا يمكن تعريف نفسي مع العمل html المساعدين و intellesense أود أن أرى كيف أن نعل هذه الخصائص في 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" />

thx

هل كانت مفيدة؟

المحلول

فإنه لا ينبغي أن يكون من الصعب....ولكن أعتقد أنك تقصد Html.الرابط لأن ActionLink يعني تحتاج إلى توليد رابط من جدول التوجيه.

<%= Html.Link("Remove from Cart", "#", new {onclick = "#Step2_RemoveRegistrationForm input[name=id]').val('<%=row.ID %>'); $('#Step2_RemoveRegistrationForm').submit();"}) %>
  • المعلمة#1:linkText
  • المعلمة#2:href
  • المعلمة#3:htmlAttributes

    الجمهور ثابت سلسلة الرابط(هذا HtmlHelper htmlHelper ، سلسلة linkText ، سلسلة href الكائن htmlAttributes) {

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

    tagBuilder.MergeAttributes(htmlAttributes);

    tagBuilder.MergeAttributes("href", href);

    عودة tagBuilder.ToString(TagRenderMode.طبيعي) ؛

    }

و لا تنسى أن <%@ استيراد مساحة الاسم="xxxxxx" %> على عرض من أجل استخدام طريقة التمديد.

نصائح أخرى

لا يمكن أن تتصرف الأزرار مثل الروابط دون جافا سكريبت.
بشكل عام - هذه ممارسة سيئة (لا يمكن لمحركات البحث فهرسة صفحتك بشكل صحيح، إلخ).

أود أن أوصي بك استخدام علامات مرساة وجعلها تبدو وكأنها أزرار.

ولكن إذا كنت بحاجة حقا - هذه توفر المقالة إجابة.

تعديل:

آسف. أطلق النار على إجابتي قليلا بسرعة كبيرة.

هذا ليس بالضبط ما تسأله (HTMLHELPER غير مشترك) ولكن هذا هو الطريقة التي سأحل فيها هذه المشكلة:

في الرأي، أود أن أعرف المرساة (المراسي بدون حريز يمر صحة 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.

Edit2:

يتم تعريف نص مرساة داخل العلامات. أنا دائما أخلطي ذلك. ويبدو أن الأسهم () خطأ جدا. حاول إعادة كتابة ذلك: Event.TargetSource () => Event.Target.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top