我在視圖中以編輯模式在集合中顯示項目列表。編輯完文件後,我想提交。但我無法回傳列表。列表顯示爲空。無法提交MVC中的模型列表
這裏是我的看法
@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(var item in nql)
這意味着nql爲空。
我想你忘記了添加輸入元素與ID = nql,因此爲null。在Form中,你必須使用與模型中相同的id。 – Musketyr
@Musketyr對不起,你可以請你告訴我我犯了什麼錯誤。我已將NewsLetterQuestions列表作爲參數。 – Shahzad
您可以檢查POST請求(Chrome中的開發人員工具)以查看正在發佈的內容嗎? –