2009-01-07 8 views

Répondre

0

Votre contrôleur ne doit pas savoir ou se soucier de cela, autre que View pour envoyer les données. La vue peut être rendue dans n'importe quel format imaginable. J'ai des vues qui émettent RSS (XML), etc. Dans le contrôleur, soit l'envoyer à la vue par défaut ou identifier explicitement la vue cible.

0

Si j'ai bien compris votre question, vous souhaitez utiliser différentes vues en fonction des paramètres transmis au contrôleur. Si oui, vous pouvez utiliser cette instruction dans l'action du contrôleur:

return View("ViewName"); 

Sinon, veuillez clarifier votre question.

1

Je créerais un objet ActionResult personnalisé. J'utilise la fonction Json() pour renvoyer un JsonResult lorsque j'ai besoin de JSON comme réponse. J'utilise ce code pour remplir une arborescence ExtJS en utilisant des données JSON.

public JsonResult Folders(string node) 
    { 

     var relativePath = (node == "root") ? "" : node; 
     var path = Path.Combine(BASE_PATH, relativePath); 
     var folder = new DirectoryInfo(path); 
     var subFolders = folder.GetDirectories(); 
     var folders = new List<ExtJsTreeNode>(); 
     foreach (var subFolder in subFolders) 
     { 
      folders.Add(new ExtJsTreeNode(subFolder.Name, subFolder.FullName.Replace(BASE_PATH, ""), "folder")); 
     } 
     return Json(folders); 

    } 

    private class ExtJsTreeNode 
    { 

     public string text { get; set; } 
     public string id { get; set; } 
     public string cls { get; set; } 

     public ExtJsTreeNode(string text, string id, string cls) 
     { 
      this.text = text; 
      this.id = id; 
      this.cls = cls; 
     } 

    } 

Exemple d'un objet ActionResult personnalisé here.

Questions connexes