2012-07-16 6 views
0

Bon si en ce moment dans ma classe principale du contrôleur que je viens chaque chose séparée revenir une vue comme:contrôleurs MvC3 et des vues

public ActionResult Contact() 
    { 
     return View(); 

    } 

Je cette tape vers le bas, car il est pas très difficile! Ce que je voudrais savoir cependant, c'est quoi d'autre que je peux faire dans ce résultat d'action? Quelles autres choses peuvent être accomplies à travers cela?

Répondre

3

Vous pouvez retourner un contenu hardcoded au lieu d'une vue:

public ActionResult Contact() 
{ 
    return Content("Hello"); 
} 

Vous pouvez retourner JSON:

public ActionResult Contact() 
{ 
    return Json(new { Foo = "bar" }, JsonRequestBehavior.AllowGet); 
} 

Vous pouvez retourner javascript:

public ActionResult Contact() 
{ 
    return JavaScript("alert('Hello World');"); 
} 

Vous pouvez diffuser directement un fichier:

public ActionResult Contact() 
{ 
    return File(@"c:\work\foo.pdf", "application/pdf", "foo.pdf"); 
} 

Vous pouvez retourner un 404:

public ActionResult Contact() 
{ 
    return HttpNotFound(); 
} 

Vous pouvez retourner 401:

public ActionResult Contact() 
{ 
    return new HttpUnauthorizedResult(); 
} 

Et si les résultats d'action intégré ne répond pas à vos besoins vous pouvez toujours écrire un personnalisé . Par exemple, un qui retourne XML:

public class XmlResult : ActionResult 
{ 
    private readonly object _data; 
    public XmlResult(object data) 
    { 
     if (_data == null) 
     { 
      throw new ArgumentNullException("data"); 
     } 
     _data = data; 
    } 

    public override void ExecuteResult(ControllerContext context) 
    { 
     var response = context.HttpContext.Response; 
     response.ContentType = "text/xml"; 
     var serializer = new XmlSerializer(_data.GetType()); 
     serializer.Serialize(response.OutputStream, _data); 
    } 
} 

puis:

public ActionResult Contact() 
{ 
    return new XmlResult(new { Foo = "Bar" }); 
} 

Comme vous pouvez le voir il y a beaucoup de choses que vous pourriez faire. La question est: que voulez-vous faire?

+0

Waouh merci pour ça! Super utile. Pour répondre à la question à la fin, je n'ai aucune idée de ce que je veux faire! Je fais en quelque sorte un projet final pour m'enseigner tout ce que je peux sur MVC3 et les choses liées et je voulais incorporer plus de choses autres que des vues droites. –

+0

Pouvez-vous ajouter la vue partielle? Très pratique pour les appels JavaScript. :) – Silvermind

0

Habituellement, dans Action sur le contrôleur, vous récupérez des données dans un magasin de données et vous les renvoyez à la vue. Si vous demandez quels types d'ActionResults il y a, vous pouvez en trouver une liste here.

Questions connexes