1対多の関係を持つ2つのクラスがあります。ASP.NET MVCビューでコントローラオブジェクトに1対多リレーションシップの子オブジェクトが返されない
public class Article
{
[Key]
public virtual int Id { get; set; }
public virtual string Title { get; set; }
public virtual int SortOrder { get; set; }
public virtual ArticleList ArticleList{ get; set; }
}
public class ArticleList
{
public ArticleList()
{
Articles = new List<Article>();
}
[Key]
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual ICollection<Article> Articles { get; set; }
}
これはコントローラの動作です。ここでArticleListに関連するすべての記事が正しく読み込まれます。
public ActionResult EditArticleList(int id)
{
ArticleList articleList = unitOfWork.ArticleListRepository.GetById(id);
return View(articleList);
}
これはコントローラのポストアクションです。ビューがデータを返すとき、ArticleListに関連する記事は、ArticleListオブジェクト内にとして返されません。
public ActionResult EditArticleList(ArticleList articleList)
{
}
これは対応するビューです。ビューコントローラのポストアクションにArticleListに関連する記事を返さない理由
@model Domain.Entities.ArticleList
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>EditArticleList</title>
</head>
<body>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>ArticleList</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.Id)
<div class="form-group">
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
</div>
</div>
@foreach (var p in Model.Articles)
{
<div>
<h3>@p.Title</h3>
<h4>@p.Created</h4>
@Html.ActionLink(p.Title, "Edit", "AdminArticle", new { id = p.Id }, null)
</div>
}
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
</div>
<div class="form-horizonthal">
<div class="form-group">
<input type="button" class="btn btn-default" id="btnsubmit" value="get Value" />
</div>
</div>
}
問題がありますか?