ここは私のモデルです。モデルにモデルが含まれている場合、デフォルトのモデルバインディングは機能しません
@model MyTestApp.Models.NameModel
@Html.LabelFor(m => m.LastName)
@Html.TextBoxFor(m => m.LastName)
<br />
@Html.LabelFor(m => m.FirstName)
@Html.TextBoxFor(m => m.FirstName)
を次のように続いてSHOWINFO
@model MyTestApp.Models.InfoModel
@using (@Html.BeginForm())
{
@Html.Partial("ShowName", Model.Name)
<br />
@Html.LabelFor(m => m.Phone)
@Html.TextBoxFor(m => m.Phone)
<br />
<input type="submit" value="Submit Info" />
}
ためのビューがあり
public class InfoModel
{
public NameModel Name { get; set; }
public string Phone { get; set; }
}
public class NameModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public NameModel(string first, string last)
{
this.FirstName = first;
this.LastName = last;
}
}
その後、私は名前だけを表示するための部分的なビューを持っている今、ユーザーは、コントローラのメソッド以下、すべての情報を提出しています
[HttpPost]
public ActionResult ShowInfo(InfoModel model)
{
...
}
問題は、モデルの値を調べるときに、電話は問題ありませんが、名前はnullです。どのようにそれを動作させるためのアイデアですか?
デフォルトのコンストラクタを追加してもこの問題は解決しません –
私は自分の答えを更新しましたが、デフォルトのコンストラクタが必要です:) – nemesv
ここで部分的なビューは使用できません。あなたは詳細を教えていただけますか? –