Ich habe diese Rasierer-Ansicht, die ein paar Elemente auf einer Bedingung enthalten, muss ich einen Kommentar zu einem der Artikel hinzufügen (wie Kommentar hier in SO). versucht, die ID an eine andere Form übergeben, hat nicht funktioniert, das ist, was ich getan habe, aber ich denke, es ist der falsche Ansatz. so weit ich habe diese: Anzeige die Überprüfung nach Benutzer (Parameter)Artikel hinzufügen Base auf anderen Artikel-ID in einer zu vielen Relation
public async Task<ActionResult> ReviewAbout(int? id)
{
var profilec = await db.profile.FindAsync(id);
IEnumerable<ReviewViewModel> viewModel = from review in db.reviews.OrderBy(d => d.Created)
.Include(s => s.subject).Where(m => m.subject.MemberID == profilec.MemberID)
.Include(r => r.Writer)
join comment in db.Comments
on review.ReviewId equals comment.ReviewId into joinedReviewComment
select new ReviewViewModel
{
//parameters
ReviewId = review.ReviewId,
Comments = joinedReviewComment.Select(c => new CommentViewModel
{
CommentBody = c.CommentBody,
CommentGBU = c.CommentGBU,
anonymous = c.anonymous,
CommentsWriterName = c.CommentsWriterName
}).ToList(),
};
return View(viewModel.ToList());
}
in der Ansicht
@model IList<MyWebSite.ViewModels.ReviewViewModel>
@for (int i = 0; i < Model.Count(); i++)
{
@Html.DisplayFor(x => x[i].ReviewId)
@Html.HiddenFor((x => x[i].ReviewId))
@Html.ActionLink("comment", "AddComent", new { id = @Html.DisplayFor(x => x[i].ReviewId) })
@for (var j = 0; j < Model[i].Comments.Count; j++)
{
}
}
Ich habe versucht, id zu der Ansicht zu übergeben und die die das bekommen Post Controller sehen so aus:
public async Task <ActionResult > AddComent(Comments commnets)
{
//commnets.ReviewId = commnets.ReviewId;
//commnets.ReviewId = commnets.review.ReviewId;
//commnets.ReviewId = commnets.ReviewId;
if (ModelState.IsValid)
{
db.Comments.Add(commnets);
await db.SaveChangesAsync();
return RedirectToAction("index");
}
return View(commnets);
}
aber, kein Glück, was es die besten Praktiken, es zu tun?