2010-08-18 6 views
1

J'ai un lien dans mon action comme celui-citransmission et la réception des valeurs routedictionary dans MVC2

<%: Html.ActionLink("View Data","Index","MyItem", new {itemId=Model.itemId}, null)%> 

maintenant dans mon contrôleur newItem dans son action index comment puis-je récupérer ce itemId, jusqu'à présent j'ai essayé ce

public ActionResult Index() 
     { 
      RouteData rd = this.RouteData; 
      var list = from p in rd.DataTokens.Where(p => p.Key == "itemId") select p; 
      int? id = null; 
      if (list.Count() > 0) 
       id = Convert.ToInt32(list.Single().Value); 
      if (id.HasValue) 
      { 

       return View(from a in _Service.List().Where(a => a.ApplicantId == id.Value) select a); 
      } 
      else 
       return View(NORECORDVIEW,); 


     } 

et aussi ce cependant

HttpRequestBase rd = this.Request; 
      var list = from p in rd.QueryString.AllKeys.Where(p => p. == "itemId") select p; 
      int? id = null; 
      if (list.Count() > 0) 
       id = Convert.ToInt32(list.Single().Value); 
      if (id.HasValue) 
      { 

       return View(from a in Service.List().Where(a => a.ApplicantId == id.Value) select a); 
      } 
      else 
       return View(NORECORDVIEW); 

aucun de ce retour la valeur correcte.

Dans MVC1, nous pourrions facilement gérer cela directement, mais comment le faire en MVC2 s'il vous plaît.

+0

Il est pas tout à fait clair pour moi ce que votre essayez d'accomplir ... Pourquoi ne pouvez-vous le faire: ActionResult Index (int id?) – Scrappydog

Répondre

1

Vous pouvez faire beaucoup plus facilement:

public ActionResult Index(int itemId) 

Non seulement ce 1/10 du code, il est beaucoup plus facile à tester.

+0

Ofcourse Je suis au courant, mais je suis à la recherche de l'autre des trucs. – user182630

+0

Je voudrais accomplir ceci sans avoir de paramètre d'index – user182630