2013-01-18 3 views
8

Ho elementi html in foreach. Non posso dichiarare il nome dell'ID a quelli manualmente. Ho usato id='[email protected](item.Id)' impostare Id:Come impostare l'ID e utilizzarlo dinamicamente nel mvc 4 rasoio?

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

Ma, ora ho bisogno .Click() funzione per AESS <a> link per fare i miei alcune operazioni. Come funziona la scrittura di clic per gli ID dinamici?
ho controllato questo, ma non funziona:

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

    //any operation 

}); 

Edit:

<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> 

Questa clic (funzioni) Inviare una richiesta al controller di iterazione conta volte. Cosa c'è di sbagliato nel mio codice?

+0

'$ ('a'). Click();' può farlo. In realtà il tuo scopo non è chiaro. Perché vuoi selezionare solo un particolare ID per fare le cose? – Jai

+0

Ad esempio, asume that, answer accetta la struttura in http://stackoverflow.com. L'idea di cui ho bisogno è simile, per selezionare qualsiasi elemento dalla lista delle risposte che si allinea in modo dinamico. –

risposta

11

Suggerisco di utilizzare gli attributi.

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

poi in JS ...

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

In questo modo si sta cablata per tutti i link simili (per esempio select-list) senza una funzione di gestione separata per ogni #id.

+0

grazie per questo, funziona, ma quando faccio clic su qualsiasi collegamento, le operazioni funzionano molte volte, fino a foreach finisce ... –

+0

Controlla il tuo codice di output (HTML). Probabilmente stai collegando il JS che ho postato ogni iterazione attraverso il loop. Con il mio codice devi solo aggiungere JS ONE TIME, cioè dopo il ciclo, e poi funzionerà con tutti i link. –

+0

Ho modificato la mia domanda. perfavore guarda. il codice di uscita è corretto i valori di ID dati line-up 1, 2, 3. id = 'ProductSelect _ @ (item.Id)' funziona anche, ma la richiesta va al controller molte volte (conta l'iterazione) –