2017-02-14 4 views
-1

나는 특성과 같이 내보기 모델의 정의 -이 특정 ASP.NET MVC 시나리오에서 C# 속성을 올바르게 활용하는 방법은 무엇입니까?

public string FullName 
     { 
      get { return FirstName + " " + LastName; } 
      set { 
        FirstName = FullName.Split(null)[0]; 
        LastName = FullName.Split(null)[1]; 
       } 
     } 


     public string FirstName { get; set; } 


     public string LastName { get; set; } 

내 면도기보기이있다 -

<label for="FullName">Name</label> 
      @Html.TextBox("FullName", Model.FullName) 

나는 전체 이름을 설정할 때 텍스트 상자에 표시 할 수 있어요 동안 페이지가로드되고 양식을 제출하는 동안 값을 검색 할 수 없습니다.

값이 변경되면이 텍스트 상자에서 값을 검색해야합니다. 여기서 내가 뭘 잘못하고 있니?

+1

FullName 속성을 만들고 FirstName과 Last를 결합한 면도기보기에서 사용할 수없는 FullName을 구문 분석하거나 FullName을 메서드로 만드는 First and Last 메서드를 만듭니다. FullName의 Setter에서 수행중인 작업을 수행하는 것은 좋지 않습니다. –

+1

'FullName'은'set;'속성을 가지고 있어야합니까? –

+0

setter에서'FirstName'과'LastName' 속성을'FullName'의 값으로 설정하려고 시도합니다. 그러면'FirstName'과'LastName'의 값은 반환되지 않습니다. 설정되었습니다. –

답변

0
그것은 당신이 여기서 뭘하고자하는지에 따라 달라집니다

..

당신이 FullName 속성을 "설정"할 수 있도록하려면 그냥 덩어리로 문자열을 분할 FirstNameLastName에 해당 값을 지정하는 경우, 이 같은 그것을 (그리고 자체에서 속성의 이름을 사용) 것 :

 public string FullName 
     { 
      get { return FirstName + " " + LastName; } 
      set 
      { 
       this.FirstName = value.Split(null)[0]; 
       this.LastName = value.Split(null)[1]; 
      } 
     } 

코드의 문제는 당신이 생성자로 FullName 세터를 사용하려는 것입니다 때 현실에서 먼저 LastName 속성은 개별적으로 설정해야하며 FullName shou 그냥 내 생각에 너처럼 get; 속성을 가지고있어.

+0

아래의 줄은 FullName을 사용하기 전에 설정되어 있습니다. 'FirstName = FullName.Split (null) [0];' '성 = FullName.Split (null) [1];' – Sarang

+0

그게 무슨 뜻인지 모르겠습니다. –