Je construis une application asp.net MVC 2.Etat de stockage dans asp.net MVC
J'ai une vue en liste qui liste les éléments en fonction d'un paramètre. Dans la base de données, j'ai une table parent et enfant, donc ma vue liste liste tous les enregistrements enfants pour lesquels l'id du parent correspond à la valeur spécifiée dans le paramètre.
Ceci est mon contrôleur et le modèle:
public ActionResult List(int ParentID)
{
return View(new Models.ChildListModel(ParentID));
}
public class ChildListModel
{
public int ParentID {get;set;}
public ManagementUserListModel(int iParentID)
{
this.ParentID = iParentID;
this.Children = DataAccessLayer.ListChildrenForParent(iParentID);
}
public List<Child> Children {get;set;}
}
J'ai aussi des détails et de créer une action pour ce contrôleur. Les détails et la vue de création ont une action "retour à la liste", que je veux revenir à la vue de liste, et maintenir l'original ParentID. Jusqu'à présent, je l'ai fait en créant un champ caché appelé ParentID dans la liste, modifier, créer et détails des vues, de sorte que la propriété ParentID du modèle se remplis correctement:
<%= Html.HiddenFor(model => model.ParentID) %>
Ensuite, dans le « Retour à liste » action dans chaque vue je passe le ParentID:
<%=Html.ActionLink("Back to List", "List", new {ParentID = Model.ParentID}) %>
tout cela fonctionne, mais je ne suis pas un grand fan de stockage ID premières dans le code HTML. Y a-t-il de meilleurs moyens de le faire? Y a-t-il un moyen de crypter les données (un peu comme le standard asp.net viewstate?) J'essaie juste d'obtenir une sorte de résistance à l'altération, et d'essayer d'éviter d'utiliser l'état de session (TempData, etc.) ne veulent pas avoir à gérer les délais d'attente de session.
ViewState était codé en base64, et assez facile à 'déchiffrer'. Je suppose que la question est, pourquoi ne pas utiliser les ID de magasin dans le brut? Quels problèmes y a-t-il avec cela? –