0
我將對象列表傳遞給視圖並允許用戶更新單個對象的屬性。在編輯模型列表時,模型的Id不會從視圖正確傳遞到動作中視圖
這是獲取操作。我將文章列表傳遞給此處的視圖。
public ActionResult EditArticleList(int id)
{
ArticleList articleList = unitOfWork.ArticleListRepository.GetById(id);
IEnumerable<Article> Articles = articleList.Articles;
return View(Articles);
}
這是視圖。
@model IEnumerable<Domain.Entities.Article>
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>EditArticleList</title>
</head>
<body>
@for (int i = 0; i < Model.Count(); i++)
{
using (Html.BeginForm("EditArticleList", "AdminArticleList", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.EditorFor(model => Model.ToList()[i].Title, null, "Title")
@Html.HiddenFor(model => Model.ToList()[i].Id)
<input type="submit" />
<br />
}
}
這是後採取行動。
public ActionResult EditArticleList(Article art)
{
}
我正在傳遞3篇文章,其中Ids爲1,2,3。 但無論哪篇文章我更新和發佈,ID返回爲1. 標題正確返回。
這真的是沒有意義的,如果你要我研究一個查詢字符串純MVC解決方案?:
視圖可以請你讓我。你只能一次提交一份表格,所以你爲什麼要創建多個表格。並且您的生成'name'屬性與您的模型無關。 –
@StephenMuecke我允許用戶從項目列表中一次更新一個項目。每個項目都有一個更新按鈕。這就是爲什麼我要爲每個項目創建一個表單。 –
這是錯誤的方法,並且是一個可怕的用戶界面(如果用戶在兩個文本框中輸入值並點擊提交按鈕,認爲兩者都將被保存,並且如果'ModelState'無效,則無法返回視圖 –