2012-11-23 2 views
2

와 바인딩 나는 ViewModel에있는 다음 Create보기에서보기 편집 모델 HttpPostedFile

public HttpPostedFileBase File { get; set; } 
    public string Notes { get; set; } 

을, 나는 모델에 HttpPostedFile를 결합하는 <input type="file" name="file" /> 있습니다. 여태까지는 그런대로 잘됐다.

각각의보기로 "편집"작업을 개발하려고 할 때 내 문제가 시작됩니다. 문자열 속성 Notes의 편집기 필드를 표시하는 데 전혀 문제가 없으므로 그 부분은 쉽습니다.

그러나 보기에 <input type="file" name="file" />의 실제 값을 표시하려면 어떻게해야합니까? 바이트 배열을 ViewModel의 File 속성에 바인딩하려면 어떻게해야합니까? 그게 올바른 방법일까요? 더 나은 해결책이 있습니까? 나는 이것으로 좌초하고 당신의 도움을 평가할 것입니다.

+0

파일 입력 유형은 * 업로드 * 용이며 브라우저에서 파일을 편집하지 않기 때문에 달성하고자하는 것은 무엇입니까? – Marc

답변

0

수 없습니다.<input type="file" />은 파일을 업로드하기위한 것이므로 파일을 편집 할 수 없습니다.

당신은이 (그냥 예)를 시도 편집보기에서 파일을 삭제할 수 있도록하려면 :

  1. 가 편집보기 모델
  2. 에 부울 속성 DeleteFile을 추가로 해당 속성 추가 편집보기에서 체크 박스는 사용자의 편집 방법 검사에서
  3. 것은 DeleteFile이 true로 설정 그렇다면, 당신은 편집하고 그 기록에 첨부 된 파일을 찾아 삭제하는 경우

그리고 FileUploadedFile으로 바꿀 수 있습니다. 그러나 그것은 당신까지 물론입니다.

+0

답변 해 주셔서 감사합니다. 그러나 편집보기에서 사용자는 파일을 삭제하지 않고 파일을 변경해야합니다 (파일이 필요합니다). 나는 그것을 제어하기 위해 약간의 Jquery를 넣어야 할 것 같아 ... 다시 한번 감사드립니다! –

+0

사용자에게 파일 업로드 컨트롤을 표시하여 새 파일을 업로드하고 서버 측에서 이전 파일을 바꿀 수 있습니다. 또한 서버에 파일이 있음을 사용자에게 보여줄 수 있지만 파일 유출 제어의 값을 설정할 수있는 방법은 없습니다 (보안 누출이 될 수 있음). – Marc

+0

그게 핵심입니다. 예를 들어 실제 파일 이름을 표시하고 모델의 File 속성이 null인지 (새 파일을 업로드하고 DB를 업데이트 할 때) 제어기에 체크인해야합니다. 고마워, 최고의 안부! –