2013-03-06 63 views
0

更新!MVC半複雜模型綁定另一半始終爲空

好吧,我現在已經測試根據您發送的表單創建兩個動作結果。

其中一個視圖總是正確綁定登錄模型。另一個不受約束總是返回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" /> 
} 

已更新!

我在我的主視圖中加載了兩個部分視圖。

上面是一個,另一個是部分登錄視圖。

出頭腥..如果我告訴不工作以 @using(Html.BeginForm())

它不回去,而不HTTP的ActionReslut,它進入的HTTP再次..這告訴我其他表單(登錄表單)正在做我不知道的事情?

回答

0

嘗試

@Html.EditorFor(model => model.Register.Email,"emailbox") 
+0

不行的。我想這是因爲我有兩個不同的形式。看起來工作的最後一種形式(登錄表單)是在做一些可憎的事情,這反過來會摧毀其他領域的所有事情,請參閱更新的問題部分。 – 8bitcat 2013-03-06 20:18:05