2010-08-22 5 views
1

Hey là, je suis en train de faire un site qui ont les suivants: Nouvelles, Produits, About et Contact. Le problème est que par exemple les Produits - J'ai une vue Index pour lister les produits pour l'utilisateur, mais que faire si je veux faire un "panneau de contrôle" où je devrais pouvoir éditer les produits (noms, prix, quantité) - Comment cela devrait-il être fait sans avoir à créer un double productController?ASP.NET MVC - Management

Répondre

1

Vous pouvez avoir différentes vues associées à un contrôleur. Chaque vue sera liée à une méthode d'action dans votre contrôleur.

Vous pouvez, par exemple, définir votre cette

classe comme ProductController
public class ProductController : Controller { 
    [HttpGet] 
    public ActionResult Index() { 
     var productList = ProductService.GetProducts(); 
     return View(productList); 
    } 

    [HttpGet] 
    public ActionResult Edit(int id) { 
     var product = ProductService.GetProduct(id); 
     return View(product); 
    } 

    [HttpPost] 
    public ActionResult Edit(ProductModel product) { 
     if (ModelState.IsValid()) { 
     // save the changes 
     return RedirectToAction("Index"); 
     } 
     return View(product); 
    } 
} 

et ont les vues correspondantes dans votre Views dossier:

Views 
| -- Product 
    | -- Index.aspx 
    | -- Edit.aspx 
+0

Ah, doit être moi il nai expliqué correctement. Ce que j'essaye de faire est un petit CMS. Vous accédez à http://something.com/products et voir les produits répertoriés. Si vous allez ensuite à http://panel.something.com et vous connectez vous avez un site où vous pouvez gérer toutes les pages, par exemple les produits. Ma question est la suivante: est-ce que le panel et les contrôleurs de partage de site normaux devraient? – ebb

+0

Vous auriez normalement différentes actions CRUD dans un contrôleur. Pour les actions Créer/Mettre à jour/Supprimer, il suffit de marquer l'action dans le contrôleur avec l'attribut [Autoriser] pour s'assurer qu'un utilisateur est autorisé à effectuer cette action. http://www.asp.net/mvc/tutorials/authenticating-users-with-forms-authentication-cs. – Michael

+0

Oui, je suis au courant de ça Michael. Le problème est que sur http://panel.something.com/products - Je veux être en mesure de lister les produits encore une fois mais cette fois avec des liens Modifier/Supprimer. Dois-je créer une nouvelle vue pour la liste dans mon panneau ou puis-je réutiliser l'affichage que j'ai utilisé pour http://something.com/products? – ebb