Je rencontre un problème lors de la visualisation des données dans mon application MVC2. J'utilise votre configuration d'échafaudage typique, mais lorsque je vois la page d'index ou de détails, je ne vois aucune donnée.Echafaudage MVC2 - impossible de voir les données
Je suis sûr qu'il me manque quelque chose de simple ici car je n'ai pas d'erreurs lors de la compilation ou de l'exécution.
Voici mon modèle (Users.cs):
public class Users
{
public string UserName { get; set; }
[Required(ErrorMessage = "The Customer ID is required.")]
public string CustomerID { get; set; }
}
Voici les actions contrôleur (UsersController.cs) 2 que la matière:
public class UsersController : Controller
{
static List<Users> users = new List<Users>();
//
// GET: /Users/
public ActionResult Index()
{
return View(users);
}
//
// GET: /Users/Details/5
public ActionResult Details(Users u)
{
return View(u);
}
}
Et voici mon point de vue.
Utilisateurs/index.aspx
<table>
<% foreach (var item in Model) { %>
<tr>
<td>
<%= Html.ActionLink("Edit", "Edit", new { id=item.UserName }) %> |
<%= Html.ActionLink("Details", "Details", item)%> |
<%= Html.ActionLink("Delete", "Delete", new { id = item.UserName })%>
</td>
<td>
<%= Html.Encode(item.UserName) %>
</td>
<td>
<%= Html.Encode(item.CustomerID) %>
</td>
</tr>
<% } %>
</table>
<p>
<%= Html.ActionLink("Create New", "Create") %>
</p>
Utilisateurs/Details.aspx
<fieldset>
<legend>Fields</legend>
<div class="display-label">UserName</div>
<div class="display-field"><%= Html.Encode(Model.UserName) %></div>
<div class="display-label">CustomerID</div>
<div class="display-field"><%= Html.Encode(Model.CustomerID) %></div>
</fieldset>
<p>
<%= Html.ActionLink("Edit", "Edit", new { id=Model.UserName }) %> |
<%= Html.ActionLink("Back to List", "Index") %>
</p>
Toutes les pages se chargent très bien sans erreur, mais aucune donnée est affichée. Si je cours le débogueur la liste d'utilisateurs a 0 entrées. J'utilise SQL Server.
Ma chaîne de connexion est dans mon web.config de la manière typique:
Ma base de données contient déjà des données utilisateur. Il a été généré avec l'outil d'administration de site Web asp.net par défaut, que j'utilise pour l'authentification. Cela fonctionne parfaitement.
Alors qu'est-ce que je fais mal? Toute aide est appréciée et si je dois donner plus d'informations s'il vous plaît faites le moi savoir.
Dans votre 'UsersController', le' List 'est instancié comme une nouvelle liste ()' qui est assez juste, mais n'est jamais rempli (à partir du code donné). Avez-vous omis cette partie? S'il n'a pas été omis, il est probable que vos pages ne contiennent aucune donnée car votre liste d'utilisateurs contient exactement cela; pas de données? Si tel était le cas, lorsque vous naviguez vers '../ Users /', vous ne devriez voir qu'un lien "Créer un nouveau"? –
Smudge202
Smudge202 Je suppose que c'est ma réponse alors, comment puis-je le peupler avec les données existantes en utilisant mon modèle? Je vois le lien Créer un nouveau, mais je ne veux pas lire les données existantes. Je ne prévois pas d'avoir le bouton Créer en production car l'authentification crée déjà les utilisateurs. –
Publiera une réponse pour vous expliquant ... – Smudge202