我使用SWFUpload上傳文件。爲了獲得我需要的文件傳遞數據,我添加了後綴參數到swfupload。問題是,當swfupload調用控制器方法時,我寫的自定義模型聯編程序不會被調用。我的模型的一些屬性被設置,但不是由我的自定義綁定器控制的屬性,這意味着它使用默認的模型綁定器。使用SWFUpload時未調用.NET MVC 2.0自定義模型Binder
當我使用下面的JQuery方法時,一切都按預期工作。所以問題不在於我的自定義模型聯編程序設置不正確。
$.post('AsyncUpload', $('#uploadform').serialize());
以下是我用來設置後續參數並開始上傳過程的代碼。請注意,我知道setPostParams函數,但由於某種原因,它不適合我,因此需要解決此問題。另外請注意,我驗證了在服務器端的Request變量中正確設置了後參數。
$('#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類型的屬性不匹配。您是否已驗證所有表單名稱/發佈數據鍵與您模型的屬性相同? – 2010-06-30 12:51:00
我已經證實他們是正確的,我認爲他們是,但我很微妙地錯誤。我會用我發現的答案回答,但謝謝你推動我朝着正確的方向前進。我一直在努力爭取一段時間。 – 2010-07-01 19:21:55