モデルには 2 つのプロパティがあり、そのうちの 1 つは別のクラスのオブジェクトです
public class Association : Entity
{
public Association()
{
this.User = new User();
}
public User User
{
get;
set;
}
public Role Role
{
get;
set;
}
};
私のビューはこのモデルに強く型付けされています
@model MuddyBoots.Greenlight.Association
.
.
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<div>
@Html.TextBoxFor(model => model.User.FirstName,new { id = "first-name" })
<span class="red-asterisk">@Html.ValidationMessageFor(model => model.User.FirstName)</span>
</div>
<div>
@Html.HiddenFor(model => model.Role, new { id="hiddenRole"})
<ul id="user-roles">
<li><input type="radio" name="user-role" id="role-admin" value="01" checked="checked" /> Read only</li>
<li><input type="radio" name="user-role" id="role-member" value="02" /> Restricted</li>
<li><input type="radio" name="user-role" id="role-read" value="03"/> Standard</li>
<li><input type="radio" name="user-role" id="role-subscriber" value="04" /> Administrator</li>
</ul>
</div>
}
私のコントローラー関数は次のように書かれています:
[HttpPost]
public ActionResult AddUser(Association association)
{
string firstName = association.User.FirstName;
var role = association.Role;
IRepository<Association> associationRepository = new IRepository<Association>(db);
if (ModelState.IsValid)
{
siteRepository.Update(site);
return RedirectToAction("Index");
}
return View(association);
}
私の問題は次のとおりです。ビューを投稿すると、関連オブジェクトがnullになり、値がありません。
より正確に言うと、次の 2 行をデバッグしようとすると、次のようになります。
string firstName = association.User.FirstName;
var role = association.Role;
それらの値は null ですが、最初の行をコメントすると、ロール変数に値が含まれています。問題が User プロパティに関連していることを感じていますが、解決方法がわかりません。