2009-10-08 7 views
0

J'ai un tableau de messages dans ASP.Net MVC et quand l'utilisateur crée un nouveau poste, ils doivent sélectionner une catégorie, lorsque je crée une vue (Créer) le champ (Catégories) n'apparaît pas?Asp.Net MVC View: Créer et les tableaux de relations

La base de données possède une table centrale MessageToCatRel qui contient un identificateur de message et un identificateur CatId. Je pense que c'est ce qui est confus MVC. En ce moment je fais ce qui suit, mais n'aime pas l'idée d'utiliser le Request.Form. Comment puis-je le faire publier dans l'objet comme les autres champs?

public ActionResult Create(Message messageToCreate) //Post back from Message Post 
      { 
       if (!ModelState.IsValid) 
       { 
        this.LoadCategoryViewData(); 
        return View(); 
       } 

       //Now try and save this in the Database /

/And Save 
       IMessageRepository repo = new MessageRepository(); 
       MessageCategory curCatRel = new MessageCategory(); 
       curCatRel.CategoryID = Convert.ToInt32(Request.Form["Categories"]); 

       messageToCreate.MessageCategories.Add(curCatRel); 
       messageToCreate.CreatedBy = 1; //Temp messure 
       messageToCreate.PublishDateTime = DateTime.Now; 

       repo.AddMessage(messageToCreate); 
       repo.Save(); 
+0

Quelle est la signature de l'action? –

+0

Mise à jour du message principal. – LiamB

Répondre

0

Merci pour la réponse, ne marche pas vraiment faire ce que je voulais. Je persiste à utiliser ViewData pour un peu.

Merci

1

changement

public ActionResult Create(Message messageToCreate) 

à

public ActionResult Create(Message messageToCreate, int Categories) 

Est-ce ce que vous cherchez?

Peut-être que cela?

public ActionResult Create(Message messageToCreate, MessageCategory category) 

et ce balisage:

<form ..> <input type='hidden' name='MessageCtaegory.CategoryID'>1</input></form> 
Questions connexes