2013-05-15 5 views
1

현재 MVC 3에서 EF를 사용하여 데이터베이스를 참조하는 응용 프로그램을 만들고 있습니다. 스캐 폴딩 읽기/쓰기 데이터를 사용하여 데이터베이스에서 편집을 수행 할 수 있기를 원합니다. 항목이 있지만 모든 필드가 아닙니다. 사용자가 편집 양식의 일부 필드를 편집하지 못하도록하고 따라서 데이터베이스를 차단하는 방법이 있습니까?asp.net에서 편집 기능 제한 mvc3

내 최초의 질문 때문에 실제로 편집을 저장할 때 그러나

<div class="editor-label"> 
     @Html.LabelFor(model => model.Clause) 
    </div> 
    <div class="editor-field"> 
     @Html.DisplayFor(model => model.Clause) 
    </div> 

를 사용하는

<div class="editor-label"> 
     @Html.LabelFor(model => model.Clause) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.Clause) 
     @Html.ValidationMessageFor(model => model.Clause) 
    </div> 

을 변경하여 편집 기능을 제한하는 시도는 DisplayFor 필드를 참조하는 필드는 나와 공백. 이렇게하지 않는 것이 더 좋은 방법이 있습니까?

많은 감사,

Chri3

답변

1

글쎄, 그들은 꽤 솔루션입니다.

  1. 당신은 필드 당신이보기에 싶어 편집 (안전하지 악성 한 양식에 원치 않는 필드 - 값을 추가 할 수 있습니다)를 표시 할 수 있습니다.

  2. 컨트롤러에서 원하는 필드 만 수동으로 업데이트 할 수 있습니다.

  3. 편집 할 속성 만 사용하는 ViewModels를 사용할 수 있습니다 (해당 솔루션을 선택하는 것이 좋습니다). "눈에 띄게 편집" 양식에 전달되는 표시된 값을 가지고 싶다면

편집,하지만, 당신은 숨겨진 필드로 전달있어.

@Html.DisplayFor(model => model.Clause) 
@Html.HiddenFor(model => model.Clause) 

그러나 해결책 1입니다. 제 대답은 아마도 더 나쁜 것입니다.

그러나이 필드를 편집하고 싶지 않다면 다시 입력하지 않아도됩니다. 엔티티를 업데이트하는 방법 만 변경하면됩니다.

+0

의견을 보내 주셔서 감사합니다. 수정 된 질문을 참조하십시오. – Chri3

+0

@ Chri3 수정 된 답변 참조) –

+0

모델보기 가야합니다 !!!!! :-) – klabranche