如何在MVC中通过kendo.upload和Form上传文件后调用javascript?
我试图提交一个表单,其中一个属性是文件列表 在ActionResult成功完成后,我需要显示一条必须通过Javascript触发的成功消息 如果使用Ajax.Begin form,则会显示javascript消息,但不会将文件发送到ActionResult;另一方面,如果使用Html.Begin,则会发送文件,但无法调用javascript函数,因此无法触发成功消息 以下是我的看法:如何在MVC中通过kendo.upload和Form上传文件后调用javascript?,javascript,c#,asp.net,asp.net-mvc,kendo-upload,Javascript,C#,Asp.net,Asp.net Mvc,Kendo Upload,我试图提交一个表单,其中一个属性是文件列表 在ActionResult成功完成后,我需要显示一条必须通过Javascript触发的成功消息 如果使用Ajax.Begin form,则会显示javascript消息,但不会将文件发送到ActionResult;另一方面,如果使用Html.Begin,则会发送文件,但无法调用javascript函数,因此无法触发成功消息 以下是我的看法: @using (Html.BeginForm("Action", "Controller", FormMetho
@using (Html.BeginForm("Action", "Controller", FormMethod.Post,
new { id = "exceptionForm", enctype = "multipart/form-data" }))
{
@Html.TextAreaFor(m => m.Notes)
@(Html.Kendo().Upload()
.Name("EventFiles")
)
<div >
<button href="#">
submit
</button>
</div>
}
我的模型
public class EventModel
{
public string Notes { get; set; }
public IEnumerable<HttpPostedFileBase> EventFiles { get; set; }
}
提前感谢:
Schewns您必须直接使用Telerik控件的异步模式: .CSHTML
@(Html.Kendo().Upload()
.Name("files")
.Async(a => a
.Save("Save", "Upload")
.Remove("Remove", "Upload")
.AutoUpload(true)
)
.Events(events => events
.Success("onSuccess")
.Error("onError")
)
)
Javascript:
onSuccess: function (data) {
if (data.HasCompletedSuccessfully) {
//show message extention
}
}
<script>
function onSuccess(e) {
alert("Success (" + e.operation + ")");
}
function onError(e) {
alert("Error (" + e.operation + ")");
}
</script>
Telerik文档中提供了更多信息:
经过一些挖掘和尝试,我选择了以下解决方案: 我下载了这个插件: 安装后,我添加了以下javascript函数:
$('#exceptionForm').ajaxForm({
complete: function (response) {
var data = response.responseJSON;
if (data.HasCompletedSuccessfully) {
//warning message
}
})
它就像一个符咒。
感谢您的帮助:尝试在声明@Html.Kendo.Upload.Name'EventFiles.EventsonComplete中添加一个事件。事件完成并在javascript中创建一个onComplete函数,该函数将在上传完成后调用。问题是我只想在点击submit后提交表单,就像每次我上传表格时它都会提交一样:我现在就发布答案,我知道了
$('#exceptionForm').ajaxForm({
complete: function (response) {
var data = response.responseJSON;
if (data.HasCompletedSuccessfully) {
//warning message
}
})