2011-03-15 2 views
1

Si je donne les résultats suivants:Comment gérer les tableaux de chaînes MVC dans une RedirectToAction?

 [HttpPost] 
     public ActionResult DeclineClaims(String button, String[] Decline) 
     { 
      if (button == "claim") 
      { 
       return RedirectToAction("NewExpense", "Claim", new { Create = Decline }); 
      } 

      .... 
      .... 
     } 

et recevoir via le RedirectToAction ici:

 public ActionResult NewExpense(String[] Create) 
     { 
      ... 
     } 

'Créer' dans la seconde action est une chaîne vide. Ce problème ne se produit pas avec Int et Strings standard.

Comment dois-je gérer le tableau String?

Répondre

1

Auteur:

 [HttpPost] 
     public ActionResult DeclineClaims(String button, String[] Decline) 
     { 
      if (button == "claim") 
      { 
       TempData["Create"] = Decline; 
       return RedirectToAction("NewExpense", "Claim"); 
      } 

      .... 
      .... 
     } 

Récepteur:

 public ActionResult NewExpense() 
     { 
      String[] data = (String[])TempData["Create"]; 
     } 
7

Vous pouvez essayer ceci:

[HttpPost] 
public ActionResult DeclineClaims(String button, String[] Decline) 
{ 
    if (button == "claim") 
    { 
     var parameters = new RouteValueDictionary(); 
     for (int i = 0; i < decline.Length; i++) 
     { 
      parameters["Create[" + i + "]"] = Decline[i]; 
     } 
     return RedirectToAction("NewExpense", parameters); 
    } 
    .... 
    .... 
} 
Questions connexes