だ、私はページ上のラジオボタンの2つのグループを持っている場合は提出の上に永続化されない:ラジオボタンがありますエラー
Phone 1: [ ] Home | [x] Work | [ ] Cell
Phone 2: [ ] Home | [ ] Work | [x] Cell
ページが表示されたら、私は電話1のデフォルトを設定しています、「仕事」、電話2の場合、「セル」。何が起こっているのは、ユーザが提出し、必要なファーストネームを入力しなかったときに、とがホーム(電話1用)とホーム(電話2用)を選択したとき - ページが更新されたときに電話1が「ホーム」で、細胞"。
これはどのようにですか?電話2は、エラーメッセージが表示される前に選択したものであるため、「ホーム」にする必要があります。どんなフィードバックも大歓迎です!ここで
[HttpPost]
public ActionResult Create(ClientUser x)
{
try
{
return View("Index", x);
}
catch
{
return View();
}
}
はモデルです:
@using (Html.BeginForm("create", "PetSittingRequest"))
{
<label class="labelleft" style="width: 100px">First Name:</label>
<div class="formfield" style="width: 205px">
@Html.TextBoxFor(model => model.ClientDetails[0].NameFirst, new { style = "width: 195px" })
@Html.ValidationMessageFor(model => model.ClientDetails[0].NameFirst, null)
</div>
// Phone #1 START
<label class="labelleft" style="width: 100px">Phone 1:</label>
<div class="formfield" style="width: 60px">
@Html.TextBoxFor(model => model.Phones[0].PhoneNumber, new { style = "width: 195px" })
@Html.ValidationMessageFor(model => model.Phones[0].PhoneNumber, null)
</div>
<div class="formfield" style="width: 60px"></div>
<div class="formfield" style="width: 95px"></div>
<div class="formfield" style="width: 60px">
@Html.RadioButtonFor(model => model.Phones[0].Location, "Home", new { @class="radiobtn" }) Home
</div>
<div class="formfield" style="width: 60px">
@Html.RadioButtonFor(model => model.Phones[0].Location, "Work", new { @class="radiobtn", @checked = true }) Work
</div>
<div class="formfield" style="width: 60px">
@Html.RadioButtonFor(model => model.Phones[0].Location, "Cell", new { @class="radiobtn" }) Cell
</div>
// Phone #2 START
<label class="labelleft" style="width: 100px">Phone 2:</label>
<div class="formfield" style="width: 60px">
@Html.TextBoxFor(model => model.Phones[1].PhoneNumber, new { style = "width: 195px" })
@Html.ValidationMessageFor(model => model.Phones[1].PhoneNumber, null)
</div>
<div class="formfield" style="width: 60px"></div>
<div class="formfield" style="width: 95px"></div>
<div class="formfield" style="width: 60px">
@Html.RadioButtonFor(model => model.Phones[1].Location, "Home", new { @class="radiobtn" }) Home
</div>
<div class="formfield" style="width: 60px">
@Html.RadioButtonFor(model => model.Phones[1].Location, "Work", new { @class="radiobtn" }) Work
</div>
<div class="formfield" style="width: 60px">
@Html.RadioButtonFor(model => model.Phones[1].Location, "Cell", new { @class="radiobtn", @checked = true }) Cell
</div>
}
ポストを扱うコントローラがこれです:ここで
は、ビューのpublic class ClientUser
{
public List<ClientDetail> ClientDetails { get; set; }
public List<Phone> Phones { get; set; }
}
public class ClientDetail
{
[Required(ErrorMessage="This field is required.")]
public string NameFirst { get; set; }
}
public class Phone
{
[Required(ErrorMessage="This field is required.")]
public string PhoneNumber { get; set; }
[Required(ErrorMessage="This field is required.")]
public string Location { get; set; }
}
恐ろしいです!あなたの答えはトリックであり、理にかなっています。 ClientDetailsに関して、このコードは私が持っているもののシンプルなバージョンです。私が取り組んでいるアプリケーションでは、ユーザーはClientDetailsの異なるセットを持っています。デフォルトでは、ユーザーが情報を提出すると、ClientDetailsの最初のセットが保存されますが、さらに多くの情報が含まれる可能性があります。 – SaltProgrammer