양식이 파일을 제출할 수 있으려면 파일을 업로드할 수 있도록 양식에 enctype=multipart/form-data 속성을 지정해야 한다는 것을 모두 알고 있으므로 여기서는 다루지 않겠습니다. 여기서는 설명하지 마세요.
문제는 MVC의 Html.BeginForm()을 사용하여 양식 코드를 출력하는 것입니다.
@using (Html.BeginForm()) {
}
있습니다. < in PartialView ;input type="file" />은 파일을 업로드하는 데 사용되지만 이 PartialView에 대한 상위 페이지의 Html.BeginForm()을 수정하고 싶지 않습니다. Enctype을 양식에 추가하는 PartialView:
$(function(){
$('# file').parents('form').attr('enctype', 'multipart/form-data');
});
최근 주류 브라우저는 테스트를 통과했나요? 문제는 몇 가지 이전 버전의 IE에만 문제가 있다는 것입니다. 문제를 해결하기 위해 Html.BeginForm()에 enctype을 수동으로 추가해 보았지만 문제는 다음과 같습니다. 위의 스크립트. 여러 번 검색한 끝에 IE6, 7, 8에서는 직접 attr('enctype', 'multipart/form-data')를 지원하지 않지만 dom 속성을 인코딩='multipart/form-data로 설정했기 때문에 문제가 발생한다는 사실을 발견했습니다. ', 최종 스크립트 코드 수정:
$(function () {
$('#file').parents('form').attr('enctype', 'multipart/form-data').get(0).encoding = '다중 부분/양식 데이터'
})