2017-04-30 2 views
1

저는 작업중인 ASP.Net MVC 프로젝트가 있고 양식으로 변환하려는 모델이 있습니다. 나중에 모델에 속성을 추가/제거하기로 결정한 경우 양식에 필드를 자동으로 추가하기를 원하기 때문에 EditorForModel()을 사용하고 싶습니다.EditorForModel의 기본 레이블을 제거하는 방법

제가하는 데 문제는 모델 편집기는 각 속성 걸리며 다음과 같은 HTML을 생성하는 것입니다 : (.이 그냥 일반적인하지 실제 코드)

<div class="editor-label"><label>Label Title</label></div> 
<div class="editor-field"><input type="type"/></div 

나는 그것을 위해 무엇을 원하는가 그러나 무엇 각 필드는 이것이다 :

<div class="editor-field"> 
    <label>Label Title</label> 
    <input type="type"/> 
</div> 

하지만 편집기 템플릿에서이 작업을 수행하려고하면 나는이 대신받을 :

<div class="editor-label"><label>Label Title</label></div> 
<div class="editor-field"> 
    <label>Label Title</label> 
    <input type="type"/> 
</div> 
,

EditorForModel()은 자신의 레이블 필드가 아니게하려면 어떻게해야합니까? 나는 CSS에서 숨겨진 스타일로 항상 스타일을 지정할 수 있지만, 코드 혼동을 제한 할 수 있도록하기 위해 시작하지 않았다면 좋을 것입니다.

미리 감사드립니다.

추신 : 나는 또한 [HiddenInput(DisplayValue = false)]을 사용해 보았습니다.하지만 이것은 단지 라벨이 아닌 전체 필드를 숨 깁니다. 예상대로

답변

1

당신은 그것이 작동 얻을 편집기 템플릿 cshtml이를 작성할 필요가 :

@foreach (var property in ViewData.ModelMetadata.Properties) 
{ 
    <div class="editor-field"> 
     <label>@property.GetDisplayName()</label> 
     @Html.Editor(property.PropertyName) 
    </div> 
} 
+0

나는 string.cshtml이를 넣고 그것이 문자열 당이 여러 번 실행 정말 이상한 일을했다 재산. 형식 편집기 템플릿 대신 자체 모델 편집기 템플릿을 사용해야합니다. 예를 들어, 내 모델에는 4 개의 문자열 속성과 2 개의 정수 속성이 있습니다. 이 코드는 ModelName.cshtml 또는 String.cshtml로 이동합니까? –

+0

특정 모델을 가지고 있다면 편집기 템플릿 인'[TypeName] .chstml' 모델을 생성하십시오. 그것이 일반적인 경우 같은 폴더에'Object.cshtml' 템플릿을 만듭니다. 당신의 관점에서'@ Html.EditorForModel()'만 호출하면됩니다. – CodeNotFound

+0

템플릿은 반드시 EditorTemplates 폴더에 있어야합니다. – CodeNotFound

관련 문제