2013-01-18 35 views
8

मेरे पास foreach में HTML तत्व हैं। मैं उन लोगों को आईडी नाम घोषित नहीं कर सकता हूं। मैं id='[email protected](item.Id)' इस्तेमाल किया क्रमांक सेट करने के लिए:एमवीसी 4 रेज़र में आईडी कैसे सेट करें और गतिशील रूप से इसका उपयोग करें?

foreach (var item in Model) 
    { 
    <a href="#" id='[email protected](item.Id)' class="select-link">Select this</a> 
    } 

लेकिन, अब मैं .click() मेरी कुछ कार्यों ऐसा करने के लिए eash <a> लिंक के लिए समारोह की जरूरत है। गतिशील आईडी के लिए क्लिक फ़ंक्शन कैसे लिखें?
मैं इस जाँच की है, लेकिन यह काम नहीं करता है:

$("#[email protected](item.Id)").click(function() { 

    //any operation 

}); 

संपादित करें:

<script> 
    $(document).ready(function() { 
     $('.select-link').click(function() { 
      var id = $(this).attr('data-id'); 

      url = '@Url.Action("SelectThis", "Product")'; 
      var data = { id: '@Model.Id' }; 
      $.post(url, data, function (result) { 
       if (result.success) { 
        alert("Thanks"); 
       } 
       else { 
        alert("Problem occured..."); 
       } 
      }); 

     }); 
    }); 
</script> 

यह क्लिक() कार्य अनुरोध यात्रा की गिनती बार नियंत्रक को भेज देते हैं। मेरे कोड में क्या गलत है?

+0

'$ ('ए')। क्लिक करें(); 'वह कर सकता है। असल में आपका उद्देश्य स्पष्ट नहीं है। आप सामान करने के लिए केवल विशेष आईडी चुनना क्यों चाहते हैं? – Jai

+0

उदाहरण के लिए, मान लें कि उत्तर http://stackoverflow.com में संरचना स्वीकार करते हैं। मुझे जिस विचार की आवश्यकता है वह उत्तर की सूची से किसी भी आइटम का चयन करने के लिए समान है, जो गतिशील रूप से रेखाबद्ध है। –

उत्तर

11

मैं विशेषताओं का उपयोग करने का सुझाव दूंगा।

foreach (var item in Model) 
    { 
    <a href="#" data-id='@item.Id' id='[email protected](item.Id)' class="select-link">Select this</a> 
    } 
तो जे एस में

...

$('.select-link').click(function() 
{ 
var id = $(this).attr('data-id'); 
}); 

इस तरह आप सभी समान लिंक (जैसे select-list) प्रत्येक #ID के लिए एक अलग हैंडलर समारोह के बिना करने के लिए तार कर रहे हैं।

+0

इसके लिए धन्यवाद, यह काम करता है, लेकिन जब मैं किसी भी लिंक पर क्लिक करता हूं, तो ऑपरेशन कई बार काम करता है, जब तक कि पूर्वानुमान समाप्त नहीं हो जाता ... –

+0

अपना आउटपुट कोड (एचटीएमएल) देखें। आप शायद जेएस को वायरिंग कर रहे हैं मैंने लूप के माध्यम से प्रत्येक पुनरावृत्ति पोस्ट की है। मेरे कोड के साथ आपको केवल उस JS को एक बार जोड़ना होगा, यानी लूप के बाद, और फिर यह सभी लिंक के लिए काम करेगा। –

+0

मैंने अपना प्रश्न संपादित किया। कृपया देखें। आउटपुट कोड सही है। डेटा-आईडी लाइन 1, 2, 3 के मान। id = 'productSelect _ @ (item.Id)' भी काम करता है, लेकिन, अनुरोध नियंत्रक को कई बार जाता है (पुनरावृत्ति गणना) –