我在MVC 3应用程序中有以下代码:
查看:
@(Html.Telerik().Upload()
.Name("insertAttachement")
.Multiple(false)
.Async(async => async.Save("InsertUpload", "DocumentMaquette"))
.Localizable("fr-CH")
.ClientEvents(events => events
.OnLoad("handleUploadControlLoad")
.OnUpload("handleInsertUpload")
)
)
控制器方法:
public void InsertUpload(HttpPostedFileBase attachement)
{
DocumentMaquetteModel model = new DocumentMaquetteModel();
model.fileName_DMQ = attachement.FileName;
}
JS文件事件处理程序:
function handleInsertUpload(e) {
console.log(e.files);
}
function handleUploadControlLoad() {
// handle buttons
$(this).parent().find('.t-button.t-grid-insert, .t-button.t-grid-cancel').remove();
// schedule grid refresh on window close
$(this).closest('.t-window').on('close', refreshGrid);
}
function refreshGrid() {
$('.t-grid').data('tGrid').ajaxRequest();
}
控制台中的输出是:
[Object]
0: Object
extension: ".odt"
name: "ListeDeParticipantsParSP.odt"
rawFile: File
size: 761691
__proto__: Object
length: 1
__proto__: Array[0]
但是在控制器方法中,当我尝试从附件中获取文件名时,我得到一个NullReferenceException异常,因为参数为null。
有关这方面的任何信息都是受欢迎的。
谢谢,Silviu
答案 0 :(得分:1)
好吧,在发布问题后几秒钟,答案来了。似乎Telerik控件使用为Upload提供的名称将file参数发送到方法。因此, Save上使用的方法应始终将HttpPostedFileBase参数命名为控件。在这种情况下,该方法应该采用名为insertAttachement的参数。去图!
感谢您的时间。