我正在开发一个使用 Telerik 控件的 MVC3 (razorview) 应用程序。所以我正在做的是以下内容:
我想上传一个文件,做一些验证。如果文件有效,我想为用户提供永久上传文件的选项。如果它无效,则会显示错误并且用户无法上传文件。
这是我到目前为止所拥有的:
Javascript代码:
<script type="text/javascript">
function onSuccess(e) {
if (jQuery.isEmptyObject(e.response.errors) && jQuery.isEmptyObject(e.response.warnings)) {
$("#successmsg").show();
} else {
var errorMsg = "";
if (!jQuery.isEmptyObject(e.response.errors)) {
for (var i = 0; i < e.response.errors.length; i++) {
errorMsg = errorMsg + "<li>" + e.response.errors[i] + "</li>";
}
}
if (errorMsg != "") {
var strErrorContent = $("#errormsg_template").html();
$("#errormsg").html(strErrorContent.replace("{0}", errorMsg));
$("#errormsg").show();
}
}
}
Telerik 组件视图:
<p>
@Html.Telerik().Upload().Name("file_upload").Multiple(false).Async(settings =>
{
settings.AutoUpload(false);
settings.Save("Test", "Pricat");
}).ClientEvents(events =>
{
events.OnError("onError");
events.OnSuccess("onSuccess");
events.OnUpload("onUpload");
})
</p>
因此,此代码适用于验证部分。用户选择文件,文件被上传,一些内部处理正在验证消息。如果消息有效,则会显示成功消息。如果它无效,则会显示错误。
我应该如何继续添加一个上传按钮(这基本上只是另一个方法调用),而无需再次浏览文件?
所以以下
settings.Save("Test", "Pricat");
应该成为
settings.Save("Upload", "Pricat");
所以在控制器中我有这两种方法:
public ActionResult Upload(HttpPostedFileBase file_upload) { }
public ActionResult Test(HttpPostedFileBase file_upload) { }
我的想法:在 javascript 中,如果 e.reponse 不包含错误,则显示一个按钮(ASP.NET 按钮,另一个上传 Telerik 按钮,我不知道..)。单击该按钮时,它应该在我的控制器中调用“上传”方法。我只是不知道如何将文件发送到该方法
有谁知道如何做到这一点?或者任何其他建议都非常受欢迎!
我希望它有点清楚。
提前致谢。
此致。