Asp.net mvc 3 如何在mvc3中上传文件而不重新加载整个页面?
过去几天我一直在MVC工作 我的一个页面中有一个问题,即我有一个页面,q用户在其中输入所需的详细信息并上传一个文件。我有两个按钮,分别是上传文件和创建新档案 我的问题 我的问题是,当用户点击上传按钮时,我不想重新加载整个页面。我正在考虑使用webmethod进行文件上传 我不知道我到底做错了什么 有人能纠正我吗 这是我在名为Create的控制器中的Webmethod 控制器Asp.net mvc 3 如何在mvc3中上传文件而不重新加载整个页面?,asp.net-mvc-3,file-upload,Asp.net Mvc 3,File Upload,过去几天我一直在MVC工作 我的一个页面中有一个问题,即我有一个页面,q用户在其中输入所需的详细信息并上传一个文件。我有两个按钮,分别是上传文件和创建新档案 我的问题 我的问题是,当用户点击上传按钮时,我不想重新加载整个页面。我正在考虑使用webmethod进行文件上传 我不知道我到底做错了什么 有人能纠正我吗 这是我在名为Create的控制器中的Webmethod 控制器 [WebMethod] public string FileUpload(HttpPostedFileBas
[WebMethod]
public string FileUpload(HttpPostedFileBase file, BugModel model)
{
BugModel bug = null;
if (file != null && file.ContentLength > 0)
{
string path = "/Content/UploadedFiles/" + Path.GetFileName(file.FileName);
string savedFileName = Path.Combine(System.Web.HttpContext.Current.Server.MapPath ("~" +path));
file.SaveAs(savedFileName);
BugAttachment attachment = new BugAttachment();
attachment.FileName = "~" + path.ToString();
bug.ListFile.Add(attachment);
model = bug;
}
return "FileUploaded";
}
使用脚本调用该方法
Javascript
<script type="text/javascript">
function UploadFile() {
$.ajax({
type:"Post",
url: "LogABug/FileUpload",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("File Uploaded")
},
error: function () {
ErrorMessage("Try Again");
}
});
}
</script>
函数UploadFile(){
$.ajax({
类型:“Post”,
url:“LogABug/FileUpload”,
数据:“{}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(msg){
警报(“文件上载”)
},
错误:函数(){
ErrorMessage(“重试”);
}
});
}
有人能告诉我怎么做吗?如果这是错误的方法,请纠正我正确的想法,请您单独上传文件。因此,您需要两个操作:
模型的公共字符串某物(BugModel模型)
用于该文件公共字符串文件上载(HttpPostedFileBase文件)
<script type="text/javascript">
$(function () {
$("#file-upload-form").submit(function () {
$(this).ajaxSubmit({
target: "#message",
cache: false
});
return false;
});
});
</script>
@using(Html.BeginForm("FileUpload", "LogABug", FormMethod.Post, new { enctype = "multipart/form-data", id = "file-upload-form" })) {
@Html.ValidationSummary(true)
<fieldset>
@Html.EditorFor(model => model.File)
<input type="submit" value="Upload" />
</fieldset>
}
<div id="message">
</div>
$(函数(){
$(“#文件上载表单”).submit(函数(){
$(此).ajaxSubmit({
目标:“#消息”,
缓存:false
});
返回false;
});
});
@使用(Html.BeginForm(“FileUpload”,“LogABug”,FormMethod.Post,new{enctype=“multipart/formdata”,id=“file upload form”})){
@Html.ValidationSummary(true)
@EditorFor(model=>model.File)
}
您从操作中返回的内容将显示在id为的
div
消息中您也可以不使用WebMethod执行此操作。你解决问题了吗?