Niestety natrafiłem na problem przy zmianie w PartialView. Pomimo używania AJAXA cały czas jak na złość odświeża mi się cała strona :/
W widoku całkowitym dodałem Partial View następująco
@Html.Action("_GetForSession", "Comment", new { SessionID = Model.SessionID })
Kontroler wygląda tak:
public PartialViewResult _GetForSession(int sessionID)
{
ViewBag.SessionID = sessionID;
List<Comment> comments = context.Comments.Where(c => c.SessionID == sessionID).ToList();
return PartialView("_GetForSession", comments);
}
[ChildActionOnly()]
public PartialViewResult _CommentForm(int sessionID)
{
Comment comment = new Comment() { SessionID = sessionID };
return PartialView("_CommentForm", comment);
}
[ValidateAntiForgeryToken()]
public PartialViewResult _Submit(Comment comment)
{
context.Comments.Add(comment);
context.SaveChanges();
List<Comment> comments = context.Comments.Where(c => c.SessionID == comment.SessionID).ToList();
ViewBag.SessionID = comment.SessionID;
return PartialView("_GetForSession", comments);
}
A sam plik Partial View, z którym mam problem wygląda tak:
@model IEnumerable<najbardziejdebilnytest.Models.Comment>
<div id="comments">
<ul>
@foreach (var comment in Model)
{
<li>@comment.Content</li>
}
</ul>
@using (Ajax.BeginForm("_Submit", "Comment", new AjaxOptions() { UpdateTargetId = "comments" }))
{
@Html.AntiForgeryToken()
@Html.Action("_CommentForm", new { SessionID = ViewBag.SessionID })
}
</div>
zupełnie nie rozumiem czemu mimo użycia UpdateTargetId on odświeża całą stronę skoro jest @html.Action a nie @html.ActionLink
Jest ktoś to w stanie ogarąć ?
DO ZAMKNIECIA!