Я пытаюсь добавить комментарии к теме, выбранной из списка созданных тем, У меня есть список тем, и я выбираю один из них. выбранная тема загружает свое представление своими комментариями из-за идентификатора темы. В выбранном разделе темы я хочу добавить комментарий, поэтому в сообщении комментария добавляется комментарий (в таблице), но не может возвращаться или перенаправляться на просмотр (темы с комментариями), потому что это представление является результат этого идентификатора темы. , так что я ищу способ, с помощью которого его возврат возвращается к представлению после добавления комментария с идентификатором вида темы ... или есть другой способ решения этого вопроса. .. Мне действительно нужна помощь здесь ...ASP.NET MVC: id не отправлен на пост или удалить в 'view by id'
это ошибка, я получаю
Server Error in '/' Application.
The model item passed into the dictionary is of type 'System.Int32', but this dictionary requires a model item of type 'TechForum.Models.ForumViewModel'.
ниже мой код, который загружает комментарии в тему ....
ВНУТР идентификатор "является идентификатором темы из списка
[HttpGet]
public ActionResult Comments(ForumViewModel model, int id)
{
DataSet ds = WebService.GetCommentsByTopic(id);
List<CommentModel> commentModelList = new List<CommentModel>();
DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
CommentModel _commentModel = new CommentModel();
_commentModel.COMMENTID = Int32.Parse(dr["COMMENTID"].ToString());
_commentModel.TOPICID = Int32.Parse(dr["TOPICID"].ToString());
Session["topicid"] = Int32.Parse(dr["TOPICID"].ToString());
_commentModel.COMMENT = dr["COMMENT"].ToString();
_commentModel.COMMENT_DATE = DateTime.Parse(dr["COMMENT_DATE"].ToString());
commentModelList.Add(_commentModel);
}
model.COMMENTLIST = commentModelList;
return View(model);
}
ниже код для добавления комментариев
Я попытался пропусканием идентификатор темы с точки зрения HttpGet комментария к сообщению комментарий через сеанс
[HttpPost]
public ActionResult Comments(ForumViewModel model)
{
try
{
WebService.AddComment(int.Parse(Session["memberid"].ToString()), int.Parse(Session["topicid"].ToString()), model.COMMENTS.COMMENT, DateTime.Parse(model.COMMENTS.COMMENT_DATE.ToString()));
int id = int.Parse(Session["topicid"].ToString());
ViewData["output"] = "Comment Added";
return View("Comments", id);
}
catch (Exception er)
{
ViewBag.errormsg = er.Message;
ViewData["output"] = "Comment not added";
}
return RedirectToAction("Comment", int.Parse(Session["topicid"].ToString()));
}
тот же подобный вопрос для удаления из которых я попытался мимо двух идентификаторов к представлению, как показано ниже, один взять идентификатор комментария его о удалить, а другой (id2) отправить обратно идентификатор темы с точки зрения
@Html.ActionLink("x", "DeleteComment", new { id = item.COMMENTID, id2 = item.TOPICID}
быть низким является удаление действия
public ActionResult DeleteComment(int id, int id2)
{
WebService.DeleteComment(id);
ForumViewModel model = new ForumViewModel();
DataSet ds = WebService.GetCommentsByTopic(id2);
List<CommentModel> commentModelList = new List<CommentModel>();
DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
CommentModel _commentModel = new CommentModel();
_commentModel.COMMENTID = Int32.Parse(dr["COMMENTID"].ToString());
_commentModel.TOPICID = Int32.Parse(dr["TOPICID"].ToString());
_commentModel.MEMBERID = Int32.Parse(dr["MEMBERID"].ToString());
_commentModel.COMMENT = dr["COMMENT"].ToString();
_commentModel.COMMENT_DATE = DateTime.Parse(dr["COMMENT_DATE"].ToString());
commentModelList.Add(_commentModel);
}
model.COMMENTLIST = commentModelList;
ViewData["success"] = "Comment Deleted";
return RedirectToAction("Comments", model);
}
@Boman. Не могли бы вы объяснить больше, потому что я не очень хорошо знаком со скрытым полем –