Voici mes modèlesComment passer js variable @ Model.MyModel (MVC4)
public class AddressBook
{
public string UserId { get; set; }
public IList<Address> Addresses { get; set; }
public AddressBook()
{
UserId = "";
Addresses = new List<Address>();
}
}
public class Address
{
public string Company { get; set; }
public string Title { get; set; }
public string FName { get; set; }
...
}
Le contrôleur construit le répertoire avec une liste d'adresses. La page principale utilise le modèle AddressBook (@model mymodel.AddressBook) et je peux accéder aux différentes adresses en utilisant Model.Addresses [index].
Sur la page I afficher la liste des adresses chacun avec un bouton Modifier (je privais code html off pour plus de clarté):
@model mymodel.AddressBook
...
@for (int i = 0; i < Model.Addresses.Count; i++)
{
@Model.Addresses[i].Company
@Model.Addresses[i].FName
...
@:<input type="image" src="/images/edit.gif" onclick="addressEdit('@i'); return false;" title="Edit" />
}
Lorsque l'utilisateur clique sur le bouton d'édition que j'appelle javascript addressEdit et laissez-passer c'est l'indice de l'adresse sélectionnée.
<script type="text/javascript">
function addressEdit(index) {
$('#FName').val('@Model.Addresses[index].FName');
$('#Addr1').val('@Model.Addresses[index].Company');
...
}
</script>
Le problème est sur la ligne de jQuery $ ('# FName') val ('@ Model.Addresses [index] .FName'). L'index des variables est souligné en rouge dans VS2012 avec le message "le nom 'index' n'existe pas dans le contexte actuel".
Comment passez-vous la valeur sur 'index' pour extraire les données dont j'ai besoin?
Merci pour votre aide, cela a fonctionné parfaitement. – pts4
@ user204693: Vous êtes les bienvenus. Heureux d'avoir pu aider :) – Shyju