2012-09-25 3 views
0

쉼표로 구분할 주소를 출력 중입니다. 주소를 출력하기 전에 html을 포함하지 않으면 추가 공백없이 올바르게 표시됩니다.내용 앞에 공백을 넣는 면도기

예 :

97 글렌 도로, Holywood, BT18 0LE

현재 방법 :

97 글렌 도로, Holywood, BT18 0LE는

내 코드는 다음과 같습니다

<p class="no-margin-top">@Html.DisplayFor(modelItem => item.Address1) 
    @if(!string.IsNullOrEmpty(item.Address2)){ 
     @:, @Html.DisplayFor(modelItem => item.Address2) 
    } 
    @if(!string.IsNullOrEmpty(item.Address3)){ 
     @:, @Html.DisplayFor(modelItem => item.Address3) 
    } 
    @if(!string.IsNullOrEmpty(item.Town)){ 
     @:, @Html.DisplayFor(modelItem => item.Town) 
    } 
    @if(!string.IsNullOrEmpty(item.County)){ 
     @(", ")@("Co. ")@Html.DisplayFor(modelItem => item.County) 
    } 
    @if(!string.IsNullOrEmpty(item.Postcode)){ 
     @(", ")@Html.DisplayFor(modelItem => item.Postcode) 
    } 
    @if(!string.IsNullOrEmpty(item.Country)){ 
     @(", ")@Html.DisplayFor(modelItem => item.Country) 
    } 

위와 같이 쉼표를 다르게 출력하려고 시도했지만 여전히 동일한 결과가 나타납니다.

또한 @ Html.Raw를 사용하는 것뿐만 아니라 코드에서 모든 공백을 제거하려고 시도했습니다.

누구든지이 문제를 해결하거나 더 나은 방법을 제안 할 수 있으면 감사하겠습니다. 때문에 지금 오류가 발생합니다 프레임 워크 대린의 솔루션 내에서 변화에

UPDATE

.

public string FormattedAddress 
    { 
     get 
     { 
      var values = new[] { Address1, Address2, Address3, Town, Postcode, "Co. " + County }.Where(x => !string.IsNullOrEmpty(x)); 
      return string.Join(", ", values); 
     } 
    } 

답변

1

WOW, 이것은 당신이보기에 결국 한 끔찍한 엉망처럼 보인다.

public string FormattedAddress 
{ 
    get 
    { 
     var values = new[] { Address1, Address2, Address3, Town, Postcode, "Co. " + County } 
      .Where(!string.IsNullOrEmpty); 
     return string.Join(", ", values); 
    } 
} 

다음보기에서와 혼란 교체 :

<p class="no-margin-top"> 
    @Html.DisplayFor(modelItem => item.FormattedAddress) 
</p> 
을 내가보기 모델을 사용하고 제대로 주소를 서식을 돌볼 것보기 모델에 다음 속성을 추가 할 추천

이제 모든 좋은 습관을 침해했으며 뷰 모델을 사용하지 않고 직접 도메인 엔터티를보기로 전달한다고 말하면, 이것이 틀렸다는 것을 말하는 것 외에는 어떻게 든 해킹을 할 수 있습니다. 보기 :

<p class="no-margin-top"> 
    @{ 
     var values = new[] { item.Address1, item.Address2, item.Address3, item.Town, item.Postcode, "Co. " + item.County } 
      .Where(!string.IsNullOrEmpty); 
     var formattedAddress = string.Join(", ", values); 
    } 
    @formattedAddress 
</p> 

솔직히보기 모델을 사용하십시오.

+0

수많은 오류가 발생하면서보기 모델 코드를 약간 수정해야했습니다. 그러나 Darin이 올바른 방향으로 나를 가리켜 주신 것에 대해 감사드립니다. http : // stackoverflow에서 약간의 도움을 받았습니다.com/a/11844234/1472203 – Stephen

+0

예, 면도기보기에서'= '기호를 잊어 버렸습니다. 또한 @Html.DisplayFor (modelItem => item.FormattedAddress)'를 사용해야한다고 생각합니다. –

0

는 면도기 텍스트 마크 업을 사용하여 텍스트를 수 쉼표를 더한 공간을 강제하려고 다음과 같이 당신은

을 System.Linq

를 사용하고 있는지 확인해야합니다

그런 다음 대린의 코드를 수정. 그것은 면도 해석 문제 일 수 있습니다.

{<text>, </text>@Html.DisplayFor(modelItem => item.Address2)} 

행운

+0

동일한 문제가 발생합니다. – Stephen

+0

@Stephen 위의 해결책은 어쨌든 훨씬 나아졌습니다. 이것을 무시하십시오/ –

관련 문제