에서 통해 오는되지 않음 :일부 필드 다음은 내 컨트롤러 코드입니다 ModelBinder를
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, Actor actor)
{
try
{
actorRepository.Save(actor);
return RedirectToAction("Index");
}
catch
{
return View("Edit");
}
}
강하게 액터 클래스에 입력되는 부분도있다 호출하는보기. 어떤 이유로 클래스에 바인딩되지 않는 몇 가지 필드가 있습니다. 해당 필드는 Address, Address2 및 ZipCode입니다. 그것들은 페이지에 채워지지만 null로 되돌아옵니다. 다른 모든 분야가 있습니다.
아이디어가 있으십니까? 또한이 동작을 복제하기 위해 어떻게 단위 테스트를 작성할 수 있습니까?
업데이트 공용 클래스 배우 { 공공 문자열 가운데 이름 {얻을; 설정;}
[Required(ErrorMessage = "First Name is Required")]
[RegularExpression(@"\w*", ErrorMessage = "Last Name Contains Illegal Characters")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Last Name is Required")]
[RegularExpression(@"\w*", ErrorMessage = "Last Name Contains Illegal Characters")]
public string LastName { get; set; }
[DataType(DataType.PhoneNumber, ErrorMessage = "Please Enter a Valid Phone Number")]
[Required(ErrorMessage = "Phone Number is Required")]
public string PhoneNumber { get; set; }
[Required(ErrorMessage = "Address is Required")]
[RegularExpression(@"\w*", ErrorMessage = "Address Contains Illegal Characters")]
public string Address { get; set; }
[RegularExpression(@"\w*", ErrorMessage = "Address2 Contains Illegal Characters")]
public string Address2 { get; set; }
[RegularExpression(@"\w*",ErrorMessage = "State Contains Illegal Characters")]
[Required(ErrorMessage = "State is Required")]
public string State { get; set; }
[Required(ErrorMessage = "Zip Code is Required")]
[RegularExpression("\b[0-9]{5}(?:-[0-9]{4})?\b",ErrorMessage = "Please Enter a Valid Zip Code")]
public string ZipCode { get; set; }
[Required(ErrorMessage = "Even in theater, you have to choose a gender")]
public bool? Gender { get; set; }
[Required(ErrorMessage = "Cell Phone Number is Required")]
public string CellPhone { get; set; }
public int ActorId { get; set; }
[DataType(DataType.MultilineText, ErrorMessage = "Illegal Characters in Notes")]
public string Notes { get; set; }
[Required(ErrorMessage = "Email Address is Required")]
[DataType(DataType.EmailAddress)]
public string EMail { get; set; }
[Required(ErrorMessage = "City Is Required")]
public string City {get; set;}
}
<fieldset>
<legend>Fields</legend>
<p>
<label for="MiddleName">MiddleName:</label>
<%= Html.EditorFor(m=>m.MiddleName) %>
<%= Html.ValidationMessage("MiddleName", "*") %>
</p>
<p>
<label for="FirstName">FirstName:</label>
<%=Html.EditorFor(m=>m.FirstName) %>
<%= Html.ValidationMessage("FirstName", "*") %>
</p>
<p>
<label for="LastName">LastName:</label>
<%= Html.TextBox("LastName", Model.LastName) %>
<%= Html.ValidationMessage("LastName", "*") %>
</p>
<p>
<label for="PhoneNumber">PhoneNumber:</label>
<%= Html.TextBox("PhoneNumber", Model.PhoneNumber) %>
<%= Html.ValidationMessage("PhoneNumber", "*") %>
</p>
<p>
<label for="Address">Address:</label>
<%=Html.EditorFor(m=>m.Address) %>
<%= Html.ValidationMessage("Address", "*") %>
</p>
<p>
<label for="Address2">Address2:</label>
<%=Html.EditorFor(m=>m.Address2) %>
<%= Html.ValidationMessage("Address2", "*") %>
</p>
<p>
<label for="State">State:</label>
<%= Html.TextBox("State", Model.State) %>
<%= Html.ValidationMessage("State", "*") %>
</p>
<p>
<label for="ZipCode">ZipCode:</label>
<%= Html.TextBox("ZipCode", Model.ZipCode) %>
<%= Html.ValidationMessage("ZipCode", "*") %>
</p>
<p>
<label for="Gender">Gender:</label>
<%= Html.TextBox("Gender", Model.Gender) %>
<%= Html.ValidationMessage("Gender", "*") %>
</p>
<p>
<label for="CellPhone">CellPhone:</label>
<%= Html.TextBox("CellPhone", Model.CellPhone) %>
<%= Html.ValidationMessage("CellPhone", "*") %>
</p>
<p>
<label for="ActorId">ActorId:</label>
<%= Html.TextBox("ActorId", Model.ActorId) %>
<%= Html.ValidationMessage("ActorId", "*") %>
</p>
<p>
<label for="Notes">Notes:</label>
<%= Html.TextBox("Notes", Model.Notes) %>
<%= Html.ValidationMessage("Notes", "*") %>
</p>
<p>
<label for="EMail">EMail:</label>
<%= Html.TextBox("EMail", Model.EMail) %>
<%= Html.ValidationMessage("EMail", "*") %>
</p>
<p>
<label for="City">City:</label>
<%= Html.TextBox("City", Model.City) %>
<%= Html.ValidationMessage("City", "*") %>
</p>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
보기 및 액터 객체 정의를 나열 할 수 있습니까? – Rudy
예, Actor는 POCO 클래스이며보기에 이국적인 것이 없습니다 (어쨌든 알고 있습니다). – KevDog