Asp.net mvc 2 上载时重置ASP.NET连接
我的应用程序(ASP.NET MVC 2)出现问题,无法上传文件(在我的例子中是图像)。我已将web.config更改为接受高达20MB的文件,并尝试上载一个只有3MB的文件 应用程序本身有两种上传方式。启动库的初始上载,然后附加到库的附加上载 最初的效果像一个符咒,但附加的一个失败,没有任何解释。即使我重新上传初始图像作为附加,它仍然失败 我在这件事上有点纠结,所以我很感激你们能提供的任何帮助 提前谢谢 编辑 如果我用Firebug“黑客”表单并将其定向到初始上传Url,它会工作,但当它定向到Url时,它应该发布到它失败 编辑2 根据Rob的请求,以下是处理初始库和附加图像的代码:Asp.net mvc 2 上载时重置ASP.NET连接,asp.net-mvc-2,file-upload,upload,uploading,image-uploading,Asp.net Mvc 2,File Upload,Upload,Uploading,Image Uploading,我的应用程序(ASP.NET MVC 2)出现问题,无法上传文件(在我的例子中是图像)。我已将web.config更改为接受高达20MB的文件,并尝试上载一个只有3MB的文件 应用程序本身有两种上传方式。启动库的初始上载,然后附加到库的附加上载 最初的效果像一个符咒,但附加的一个失败,没有任何解释。即使我重新上传初始图像作为附加,它仍然失败 我在这件事上有点纠结,所以我很感激你们能提供的任何帮助 提前谢谢 编辑 如果我用Firebug“黑客”表单并将其定向到初始上传Url,它会工作,但当它定向到
[HttpPost, ValidateAntiForgeryToken]
public RedirectToRouteResult PutGallery( // Move to Ajax
[Bind(Prefix = "Gallery", Include = "ClubId,EventId,RHAccountId,RHCategoryId,Year")] Gallery Gallery,
HttpPostedFileBase File) {
if (ModelState.IsValid && (File.ContentLength > 0)) {
if (Gallery.RHAccountId > 0) {
Gallery.RHUser = this.fdc.RHAccounts.Single(
a =>
(a.RHAccountId == Gallery.RHAccountId)).RHUser;
} else {
if (!this.fdc.RHUsers.Any(
u =>
(u.User.Name == Gallery.Username))) {
if (!this.fdc.Users.Any(
u =>
(u.Name == Gallery.Username))) {
Gallery.RHUser = new RHUser() {
User = new User() {
Name = Gallery.Username
}
};
} else {
Gallery.RHUser = new RHUser() {
User = this.fdc.Users.Single(
u =>
(u.Name == Gallery.Username))
};
};
} else {
Gallery.RHUser = this.fdc.RHUsers.Single(
u =>
(u.User.Name == Gallery.Username));
};
};
Image Image = new Image() {
Gallery = Gallery
};
this.fdc.Galleries.InsertOnSubmit(Gallery);
this.fdc.Images.InsertOnSubmit(Image);
this.fdc.SubmitChanges();
Files.Save(Image.ImageId, File);
return RedirectToAction("Default", "Site");
} else {
return RedirectToAction("Default", "Site");
};
}
[HttpPost, ValidateAntiForgeryToken]
public RedirectToRouteResult PutImage(
[Bind(Prefix = "Image", Include = "GalleryId")] Image Image,
HttpPostedFileBase File) {
Gallery Gallery = this.fdc.Galleries.Single(
g =>
(g.GalleryId == Image.GalleryId));
if (File.ContentLength > 0) {
this.fdc.Images.InsertOnSubmit(Image);
this.fdc.SubmitChanges();
Files.Save(Image.ImageId, File);
};
return RedirectToAction("Gallery", "Site", new {
Category = Gallery.RHCategory.Category.EncodedName,
GalleryId = Gallery.GalleryId
});
}
旁注:
Cassini,VS 2010的内置web服务器,可能是原因吗?好的,所以我想出来了,它只在我的机器上本地安装了很长时间的IIS+配置,让它告诉我,我在路由中没有拼写
controller
,因为controlls
真烦人,这一切才得到真正的错误,所以卡西尼号是部分错误
因此,这个故事的寓意是,确保拼写正确。我们需要看一些代码来帮助您解决这个问题。主要原因是处理上传和追加的代码之间必须有所不同。确定这种差异是什么以及它如何影响上传将是这个问题的答案(对你来说=)好吧,我在上面的编辑中发布了代码,但我认为这对你没有帮助,因为我不认为路由被击中,因此我认为代码根本没有被执行。。。但我可能错了。。。