2010-05-03 3 views
0

J'ai une page où un produit apparaît sur le côté droit et l'utilisateur peut ajouter un commentaire donc j'ai un contrôle utilisateur qui obtient tous les commentaires et une petite zone de texte où l'utilisateur peut ajouter nouveau commentaire pour ce produit.asp.net forme mvc ajouter un commentaire

le lien de la page est comme

http://localhost/Product/TestComment/1

où 1 indique l'identifiant du produit et j'ai été coder en dur ma fonction AddNote ci-dessous et quatrième argument que vous voyez a été codé en dur, mais je dois passer cela comme l'id du produit. Comment puis-je faire ce

AddNote (HttpContext.User.Identity.ToString(), txtComment, 1, DateTime.Now, true);

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult AddComment(string txtComment) 
{ 
    bool rst = _NotesService.AddNote(HttpContext.User.Identity.ToString(), txtComment, 1, DateTime.Now, true); 
    return RedirectToAction("TestComment"); 
} 

Répondre

1

Pour développer la réponse de mmcteam, votre lien d'action du contrôleur devrait se lire comme suit:

http://localhost/Product/AddComment/

il devrait être POST (comme vous l'avez déjà) et devrait avoir la signature suivante dans le contrôleur:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult AddComment(string txtComment, int productId) 

et vous auriez besoin quelque chose comme ceci dans votre vue:

<%=Html.HiddenFor(model=>model.productId)%> 

HTH

+0

avez besoin d'mvc 2 i pour cela? – Pinu

+0

Oui pour HiddenFor mais vous ne devez pas utiliser HiddenFor, vous pouvez utiliser Html.Hidden(). – mare

0

Ajouter un autre paramètre à votre action et aussi ajouter le champ caché à votre formulaire avec ce paramètre (id = 1)

Questions connexes