SWFUpload를 사용하여 파일을 업로드합니다. 파일과 함께 전달해야하는 데이터를 얻으려면 swfupload에 post params를 추가합니다. 문제는 컨트롤러 메서드가 swfupload에 의해 호출 될 때 내가 작성한 사용자 정의 모델 바인더가 호출되지 않는다는 것입니다. 내 모델의 일부 속성이 설정되지만 사용자 정의 바인더로 제어되는 속성은 설정되지 않습니다. 즉, 기본 모델 바인더를 사용하고 있습니다..NET MVC 2.0 SWFUpload를 사용할 때 사용자 지정 모델 바인더가 호출되지 않습니다.
다음 JQuery 메서드를 사용할 때 모든 것이 의도 한대로 작동합니다. 그래서 문제는 내 사용자 정의 모델 바인더가 잘못 설정되지 않았다는 것입니다.
$.post('AsyncUpload', $('#uploadform').serialize());
다음은 게시 매개 변수를 설정하고 업로드 프로세스를 시작하기 위해 사용하는 코드입니다. 나 setPostParams 함수를 알고 있지만, 그것은 나를 위해, 따라서 주위에 작동하지 않는 몇 가지 이유로 유의하십시오. 또한 서버 측의 요청 변수에 게시 매개 변수가 올바르게 설정되어 있는지 확인했습니다.
$('#uploadbutton').click(function (e) {
e.preventDefault();
var data = $('#uploadform').serialize();
var res = $.parseQuery(data);
for (key in res) {
swfu.addPostParam(key, res[key]);
}
swfu.startUpload();
});
해당 swfupload 변수는 다음과 같이 설정됩니다.
upload_url: '<%= Url.Action("AsyncUpload")%>', //This becomes /Home/AsyncUpload
use_query_string: true, // I have also tried setting this to false to no effect
이것은 제 컨트롤러 방법입니다.
[HttpPost]
public bool AsyncUpload(EditModel model)
{
if (Request.Files.Count <= 0)
return false;
return true;
}
사용자 정의 모델 바인더가 호출되지 않는 이유는 무엇입니까?
제가 생각할 수있는 유일한 점은 EditModel 유형의 속성과 일치하지 않는 양식 이름 불일치 (게시물 데이터의 키 이름)가 있다는 것입니다. 모든 양식 이름/우편 데이터 키가 모델의 등록 정보와 동일한 지 확인 했습니까? –
나는 그들이 그것이 맞다는 것을 확인했고, 나는 그것들이라고 생각했지만, 나는 미묘하게 잘못되었다. 내가 찾은 것에 대답 하겠지만, 올바른 방향으로 나를 밀어 주셔서 감사합니다. 나는 이것을 잠시 동안 고민하고있다. –