2012-03-05 2 views
1

У меня есть следующий код, который выбирает кучу комментариев из базы данных, но у меня только один текущий пост, и я хотел бы иметь дело только с комментариями относительно текущей Почты.Где предложение в .NET MVC

public ActionResult Index() 
{ 
    ViewBag.PostCommentFK = new SelectList(db.Posts, "PostID", "PostTitle"); 
    return View(); 
} 

Я думаю, все, что мне нужно добавить где положение в заявлении, «PostCurrent» является логическим и может только когда-либо один «True» PostCurrent.

В настоящее время, на мой взгляд, у меня есть скрытое поле со значением 1 в нем, поэтому комментарии добавляются только к сообщению 1, но хотелось бы, чтобы это было текущее сообщение.

@Html.HiddenFor(model => model.PostCommentFK, new { Value = 1 }) 

Я тогда [HttpPost] метод к SaveChanges,

[HttpPost] 
public ActionResult Index(Comment comment) 
{ 
    if (ModelState.IsValid) 
    { 
     db.Comments.AddObject(comment); 
     db.SaveChanges(); 
     return RedirectToAction("CommentResponse"); 
    } 

    ViewBag.PostCommentFK = new SelectList(db.Posts, "PostID", "PostTitle", comment.PostCommentFK); 
    return View(comment); 
} 
+6

Каков ваш вопрос –

+0

Как получить PostID текущего сообщения и вставить его в поле FK нового комментария? PostCurrent - это логическое поле в таблице Post. –

ответ

1

Я думаю, что вам нужно, чтобы скрыть PostID вместо value

@Html.HiddenFor(model => model.PostCommentFK.PostID) 

Тогда:

[HttpPost] 
public ActionResult Index(Comment comment) 
{ 
    if (ModelState.IsValid) 
    { 
     if(comment.PostID == 0)//New record 
      db.Comments.AddObject(comment); 
     else // Edit existing comment 
      { 
       var OldComment = db.Comments.Where(c => c.PostID == comment.PostID).SingleOrDefault(); 
       if (OldComment != null) 
       { 
        OldComment.PostTitle = comment.PostTitle; 
        //Set all other properties... 
       } 
      } 
     db.SaveChanges(); 
     return RedirectToAction("CommentResponse"); 
    } 

    ViewBag.PostCommentFK = new SelectList(db.Posts, "PostID", "PostTitle", comment.PostCommentFK); 
return View(comment); 
} 
+0

Я не могу заставить это работать, потому что я не выбрал CurrentPosts, PostID на любом этапе. –

1

Спасибо Amen,

Вы были близко, и он указал мне в правильном направлении. Проблема у меня была, на мой взгляд, я использовал комментарий, но мне нужен постмодель. Замечания по комментариям комментариев, но это всего лишь форма и только нужно знать о PostID текущей версии.

Так что я изменил мою Индекс действия на,

public ActionResult Index() 
{    
    Post post = db.Posts.Single(p => p.PostCurrent == true); 
    return View(post); 
} 

И дал мой взгляд Почтового Modal

@model TMPBlog.Models.Post 

я мог бы получить доступ к сообщения дан, как это,

@Html.Hidden("PostCommentFK", @Html.DisplayFor(model => model.PostID)) 

Приветствия ,

Mike ,

+0

+1, Хорошая работа @Mike –

Смежные вопросы