【发布时间】:2016-02-18 13:21:52
【问题描述】:
我在视图中以编辑模式显示集合中的项目列表。编辑完文件后,我想提交。但我无法回发列表。列表显示为空。
这是我的观点
@model List<NewsLetter.Models.NewsLetterQuestions>
@using (Html.BeginForm("GetAnswersfromUser", "NewsLetter", FormMethod.Post, null))
{
@Html.AntiForgeryToken()
foreach (var item in Model) {
<div>
@Html.DisplayFor(modelItem => item.Question)
</div>
<div>
@Html.TextAreaFor(modelItem => item.Answer)
</div>
}
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Submit" class="btn btn-default" />
</div>
</div>
}
这是我的控制器
public ActionResult GetAnswersfromUser(string id)
{
id = "56c5afc9afb23c2df08dd2bf";
List<NewsLetterQuestions> questions = new List<NewsLetterQuestions>();
var ques = context.NewsLetterQuestionCollection.Find(Query.EQ("NewsLetterId", id));
foreach(var x in ques)
{
questions.Add(x);
}
return PartialView(questions);
}
[HttpPost]
public ActionResult GetAnswersfromUser(List<NewsLetterQuestions> nql)
{
string id = "56c5afc9afb23c2df08dd2bf";
foreach (var item in nql)
{
var query = Query.And(Query.EQ("NewsLetterId", id), Query.EQ("Question", item.Question));
var update=Update<NewsLetterQuestions>
.Set(r => r.Answer, item.Answer);
context.NewsLetterQuestionCollection.Update(query,update);
}
return RedirectToAction("NewsLetterIndex");
}
当我点击提交时,它会抛出错误。
System.NullReferenceException:对象引用未设置为对象的实例。 在行 foreach(nql 中的变量项)
表示nql为空。
【问题讨论】:
-
我想你忘了添加 id = nql 的输入元素,因此为空。在表单中,您必须使用与模型中相同的 id 元素。
-
@Musketyr 抱歉没听明白你能告诉我哪里出错了。我已将 NewsLetterQuestions 列表作为参数。
-
您能否检查 POST 请求(Chrome 中的开发人员工具)以查看发布的内容?
-
您是否尝试将参数 nql 重命名为 newsLetterQuestions?然后,mvc 的魔力应该可以解决剩下的问题。
-
@andreasnico 在控制器中?
标签: c# asp.net asp.net-mvc mongodb