C# 部分视图返回空模型ASP.NET MVC 4
在我的主视图中,我能够使用_getfortaskpartial view呈现所有“TaskComment”(模型)。然后在我的_GetForTask部分视图中,我能够呈现_TaskCommentForm,并成功地传递了TaskComment模型的一个新实例。但是,每当我单击_TaskCommentForm部分视图中的“提交”按钮时,它总是返回null。我错过了什么?非常感谢 “任务注释”模型 _GetForTask PartialViewC# 部分视图返回空模型ASP.NET MVC 4,c#,asp.net-mvc,C#,Asp.net Mvc,在我的主视图中,我能够使用_getfortaskpartial view呈现所有“TaskComment”(模型)。然后在我的_GetForTask部分视图中,我能够呈现_TaskCommentForm,并成功地传递了TaskComment模型的一个新实例。但是,每当我单击_TaskCommentForm部分视图中的“提交”按钮时,它总是返回null。我错过了什么?非常感谢 “任务注释”模型 _GetForTask PartialView @model IEnumerable<Projec
@model IEnumerable<ProjectYesha.Models.TaskComment>
<div id="comments">
<ul>
@foreach (var taskComment in Model)
{
<li>@taskComment.Comment</li>
}
</ul>
@using (Html.BeginForm("_Submit", "TaskComment", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.Action("_TaskCommentForm", "TaskComment", new { TaskID = ViewBag.TaskID })
}
</div>
@model ProjectYesha.Models.TaskComment
@Html.HiddenFor(m=> m.TaskCommentID)
@Html.HiddenFor(m=> m.TaskID)
@Html.HiddenFor(m=> m.AuthorID)
@Html.HiddenFor(m=> m.TimeStamp)
@Html.HiddenFor(m=> m.Employee)
@Html.HiddenFor(m=> m.Task)
<div>
@using (Html.BeginForm())
{
@Html.EditorFor(m => m.TaskID)
@Html.EditorFor(m => m.Comment)
<input type="submit" value = "Submit" />
}
</div>
@model IEnumerable
@foreach(模型中的var taskComment)
{
- @taskComment.Comment
}
@使用(Html.BeginForm(“_Submit”,“TaskComment”,FormMethod.Post))
{
@Html.AntiForgeryToken()
@Action(“_TaskCommentForm”,“TaskComment”,new{TaskID=ViewBag.TaskID})
}
_TaskCommentFormPartialView
@model IEnumerable<ProjectYesha.Models.TaskComment>
<div id="comments">
<ul>
@foreach (var taskComment in Model)
{
<li>@taskComment.Comment</li>
}
</ul>
@using (Html.BeginForm("_Submit", "TaskComment", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.Action("_TaskCommentForm", "TaskComment", new { TaskID = ViewBag.TaskID })
}
</div>
@model ProjectYesha.Models.TaskComment
@Html.HiddenFor(m=> m.TaskCommentID)
@Html.HiddenFor(m=> m.TaskID)
@Html.HiddenFor(m=> m.AuthorID)
@Html.HiddenFor(m=> m.TimeStamp)
@Html.HiddenFor(m=> m.Employee)
@Html.HiddenFor(m=> m.Task)
<div>
@using (Html.BeginForm())
{
@Html.EditorFor(m => m.TaskID)
@Html.EditorFor(m => m.Comment)
<input type="submit" value = "Submit" />
}
</div>
@model ProjectYesha.Models.TaskComment
@Html.HiddenFor(m=>m.TaskCommentID)
@Html.HiddenFor(m=>m.TaskID)
@Html.HiddenFor(m=>m.authord)
@HiddenFor(m=>m.TimeStamp)
@Html.HiddenFor(m=>m.Employee)
@HiddenFor(m=>m.Task)
@使用(Html.BeginForm())
{
@EditorFor(m=>m.TaskID)
@EditorFor(m=>m.Comment)
}
任务控制器
public PartialViewResult _GetForTask(Int32 taskID)
{
ViewBag.TaskID = taskID;
List<TaskComment> comments = db.TaskComments.Where(c => c.TaskID == taskID).ToList();
return PartialView("_GetForTask", comments);
}
[ChildActionOnly()]
public PartialViewResult _TaskCommentForm(Int32 taskID)
{
TaskComment comment = new TaskComment()
{
TaskID = taskID ,
};
return PartialView("_TaskCommentForm", comment);
}
[HttpPost]
[ValidateAntiForgeryToken()]
public PartialViewResult _Submit(TaskComment comment)
{
db.TaskComments.Add(comment);
db.SaveChanges();
List<TaskComment> comments = db.TaskComments.Where(c => c.TaskID == comment.TaskID).ToList();
ViewBag.TaskID = comment.TaskID;
return PartialView("_GetForTask", comments);
}
public PartialViewResult\u GetForTask(Int32 taskID)
{
ViewBag.TaskID=TaskID;
List comments=db.TaskComments.Where(c=>c.TaskID==TaskID.ToList();
返回PartialView(“\u GetForTask”,comments);
}
[ChildActionOnly()]
公共PartialViewResult\u TaskCommentForm(Int32 taskID)
{
TaskComment comment=新建TaskComment()
{
TaskID=TaskID,
};
返回PartialView(“\u TaskCommentForm”,comment);
}
[HttpPost]
[ValidateAntiForgeryToken()]
公共部分意见结果提交(任务意见)
{
db.TaskComments.Add(注释);
db.SaveChanges();
List comments=db.TaskComments.Where(c=>c.TaskID==comment.TaskID.ToList();
ViewBag.TaskID=comment.TaskID;
返回PartialView(“\u GetForTask”,comments);
}
您真的不需要采取行动。只需在_GetForTask.cshtml中显示部分视图即可。_TaskCommentForm是我打算接受新注释的地方。我在做类似于facebook评论的事情。但我会尝试移除它,看看会发生什么。谢谢。它只显示局部视图。您也可以通过调用Html.Partial来完成此操作。_TaskCommentForm操作将TaskComment的新实例传递给_taskCommentFormpartial视图。如果不执行此操作,如何将TaskComment的新实例传递给局部视图。再次感谢。@Html.Partial(“\u TaskCommentForm”,new TaskComment{TaskID=ViewBag.TaskID})