アップデート!
さて、送信するフォームに基づいて 2 つのアクション結果を作成するテストを行いました。
ビューの 1 つは常に正しくログイン モデルにバインドされます。もう一方はバインドされず、常に null を返します。
モデルはこのように構成されています
public class RegisterAndLogin
{
public LogOnModel Login { get; set; }
public interested_users Register { get; set; }
}
//This model never any values after HTTP post
public class interested_users
{
[Required]
[Display(Name = "Email")]
public string Email { get; set; }
[Required]
[Display(Name = "UserType")]
public string UserType { get; set; }
[Display(Name = "Date Inserted")]
public DateTime DateInserted { get; set; }
[Display(Name = "IP")]
public string IpAdress { get; set; }
public List<SelectListItem> SelectItems { get; set; }
}
そして景色
@model MvcApplication2.Models.ViewModel.RegisterAndLogin
@{
ViewBag.Title = "Start by filling in your email";
}
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"> </script>
<h2 class="title">Sign up!</h2>
@using (Html.BeginForm("Index","Home", FormMethod.Post))
{
<div class="form-item">
@Html.EditorFor(model => model.Register.Email,null,"emailbox",null)
@Html.ValidationMessageFor(model => model.Register.Email)
</div>
<div class="form-item">
@Html.DropDownListFor(model => model.Register.UserType,Model.Register.SelectItems, new { @class = "emailbox" })
</div>
<input type="submit" name="Register" value="Register" class="form-submit" />
}
更新しました!
メイン ビューに 2 つの部分ビューを読み込みます。
そのうちの 1 つは上記のもので、もう 1 つは部分的なログイン ビューです。
何か怪しい.. @using (Html.BeginForm()) に NOT WORKING ビューを伝えると
HTTP なしで ActionReslut に戻ることはなく、再び HTTP に戻ります。他のフォーム (ログイン フォーム) が私が認識していないことを行っていることを教えてくれるのはどれですか?