此代码在FF和chrome中工作。在IE 8或9中,我得到一个500错误,说非空属性为空。
下面是HTML
<div id="upload_button_div_general" class="fileupload-buttonbar" data-url="/Upload/SomeMethod">
<label class="fileinput-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" role="button">
<span class="ui-button-text">
<span>Add Documents...</span>
</span>
<input id="upload_button" type="file" name="postedFiles" multiple="" />
</label>
</div>
<div id="UploadMessage" data-bind="visible: showMessage">
<span>Documents</span>
<ul data-bind="foreach: upload()">
<li>
<a href="#" data-bind="click: $parent.openFile">
<span data-bind="text: $data.fileName"> </span>
</a>
</li>
</ul>
</div>
这里是JavaScript
function Upload(div, additionalParams, successFunc, failureFunc) {
$('#' + div).fileupload({
dataType: 'json',
url: rootPath + 'Upload/SomeMethod',
formData: additionalParams,
start: function (e, data) {
showLoading();
},
stop: function (e, data) {
hideLoading();
},
add: function (e, data) {
data.submit();
},
always: function (e, data) {
var result = data.result;
if (result.HasError) {
failureFunc(result.Error);
} else {
successFunc(result);
}
}
});
};
控制器方法是
public virtual JsonResult SomeMethod(IEnumerable<HttpPostedFileBase> postedFiles, int id)
也许ID不传递到行动? – karaxuna 2013-03-15 06:20:41
这就是破坏,但这在FF和铬中运行得很好。 IE获取500错误,该参数在预期为int时为空 – segFault 2013-03-15 14:38:27
使用JS调试器时,可以在调用'.fileupload()'时检查'additionalParams'的值是否符合您的期望? (即在IE和FF/Chrome中相同) – millimoose 2013-03-17 20:08:53