如何在通过 kendo.upload 和 MVC 中的表单上传文件后调用 javascript?
How to call javascript after file upload via kendo.upload and Form in MVC?
我正在尝试提交一个表单,其中一个属性是文件列表。
在 ActionResult 成功完成后,我需要显示必须通过 Javascript 触发的成功消息。
如果我使用 Ajax.Begin 形式显示 javascript 消息,但文件不会发送到 ActionResult,另一方面,如果我使用 Html.BeginForm 文件已发送,但我无法调用 javascript 函数,因此我'我无法触发我的成功消息。
这是我的观点:
@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>
}
我的行动
[HttpPost]
public ActionResult Action(Model model)
{
//do something
result = new BaseJsonData();
result.HasCompletedSuccessfully = true;
return this.Json(result);
}
我的模型
public class EventModel
{
public string Notes { get; set; }
public IEnumerable<HttpPostedFileBase> EventFiles { get; set; }
}
我的javascript:
onSuccess: function (data) {
if (data.HasCompletedSuccessfully) {
//show message extention
}
}
提前致谢:)
施文斯
你必须直接使用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:
<script>
function onSuccess(e) {
alert("Success (" + e.operation + ")");
}
function onError(e) {
alert("Error (" + e.operation + ")");
}
</script>
Telerik 文档中提供了更多信息:
经过一些挖掘和尝试一些方法后,我找到了这个解决方案:
我下载了这个插件:
http://jquery.malsup.com/form/#download
安装后,我添加了这个javascript功能:
$('#exceptionForm').ajaxForm({
complete: function (response) {
var data = response.responseJSON;
if (data.HasCompletedSuccessfully) {
//warning message
}
})
而且效果非常好。
感谢您的帮助:)
我正在尝试提交一个表单,其中一个属性是文件列表。
在 ActionResult 成功完成后,我需要显示必须通过 Javascript 触发的成功消息。
如果我使用 Ajax.Begin 形式显示 javascript 消息,但文件不会发送到 ActionResult,另一方面,如果我使用 Html.BeginForm 文件已发送,但我无法调用 javascript 函数,因此我'我无法触发我的成功消息。
这是我的观点:
@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>
}
我的行动
[HttpPost]
public ActionResult Action(Model model)
{
//do something
result = new BaseJsonData();
result.HasCompletedSuccessfully = true;
return this.Json(result);
}
我的模型
public class EventModel
{
public string Notes { get; set; }
public IEnumerable<HttpPostedFileBase> EventFiles { get; set; }
}
我的javascript:
onSuccess: function (data) {
if (data.HasCompletedSuccessfully) {
//show message extention
}
}
提前致谢:)
施文斯
你必须直接使用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:
<script>
function onSuccess(e) {
alert("Success (" + e.operation + ")");
}
function onError(e) {
alert("Error (" + e.operation + ")");
}
</script>
Telerik 文档中提供了更多信息:
经过一些挖掘和尝试一些方法后,我找到了这个解决方案:
我下载了这个插件:
http://jquery.malsup.com/form/#download
安装后,我添加了这个javascript功能:
$('#exceptionForm').ajaxForm({
complete: function (response) {
var data = response.responseJSON;
if (data.HasCompletedSuccessfully) {
//warning message
}
})
而且效果非常好。 感谢您的帮助:)