강력한 형식의 View는 Linq에서 SQL로 작성된 "Person"개체로부터 상속받습니다. 내 "편집"보기에, 나는 물론 이전 값으로 표시 할 수 있습니다모델 바인딩 및 트리밍 문자열 표시 속성
<%= Html.TextBox("FirstName") %>
"FIRSTNAME는"NCHAR, 그래서 그것을 손질 할 필요가있다. 그래서 나는 다음과 같이 끝났다 :
<%= Html.TextBox("FirstName", Model.FirstName.Trim()) %>
그리고 이것이 효과가있다. 양식이 제출 (POST 후) 일부 오류가 발생할 때, 나는 다시 표시해야합니다 :
[AcceptVerbsAttribute(HttpVerbs.Post), Authorize(Roles = "office"), HandleError]
public ActionResult Edit(Models.Person person)
{
if (!(_personService.ValidatePerson(person))) // Persona non valida
{ return View(person); }
}
만약 사용자가 텍스트 상자 "FIRSTNAME"빈를 떠나 어떤 이유로, 그 결과 부동산 Person.firstName에를 null이되고 Model.FirstName.Trim()은 Exception (개체 참조가 개체의 인스턴스로 설정되지 않음)을 throw합니다.
바인딩을 수정하고 모든 문자열이 기본적으로 트림되도록하는 방법은 무엇입니까? 또는이 아이디어를 수정하는 방법에 대한 아이디어가 있습니까??
업데이트 :은 MVC 2 동작으로 확인되었습니다. 여전히 이것을 처리하기위한 좋은 방법을 찾고 있습니다. 실제로 확장 방법을 사용하여 : Models.Person에서
public static string TrimOrDefault(this string value)
{
return value != null ? value.Trim() : string.Empty;
}
이 부분 클래스 예를 들어 내 편집을 확인 @gremo. – griegs