【发布时间】:2019-06-04 04:38:02
【问题描述】:
我需要调用 MVC 控制器函数并返回同一视图而不刷新视图。
上传功能允许多个文件,但我想将其限制为 10 个文件。
当前情况
我在剃须刀页面上有上传功能。下面的代码调用“UploadFiles”函数。
我想返回同一页面而不刷新它。
@using (Html.BeginForm("UploadFiles", "Mycontroller", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
@Html.LabelFor(model => model.files, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.TextBoxFor(model => model.files, "", new { @type = "file", @multiple = "multiple" })
@Html.ValidationMessageFor(model => model.files, "", new { @class = "text-danger" })
<div class="form-group">
<input type="submit" value="Upload" class="btn btn-primary" />
</div>
}
控制器代码如下
[HttpPost]
public ActionResult UploadFiles(HttpPostedFileBase[] files)
{
//code inputstream file to bytes
return View();
}
我也尝试过使用,但它会重定向到不同的页面。
public void UploadFiles(HttpPostedFileBase[] files)
{
//code inputstream file to bytes
return View();
}
【问题讨论】:
-
在主视图中创建一个局部视图并使用ajax-call加载它,这样你的整个页面就不会被刷新了。
-
感谢您的回复,我创建了一个局部视图。但是 HTML.BeginForm 不允许调用 javascript 函数
-
不使用 Html.BeginForm,使用 JavaScript/jQuery 对点击事件执行 ajax 调用。 stackoverflow.com/questions/25068431/…
标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-3 razor