为什么带有多部分/表单数据的HttpPost的我的ActionResult在;archivoExcel“;参数

为什么带有多部分/表单数据的HttpPost的我的ActionResult在;archivoExcel“;参数,excel,model-view-controller,multipart,form-data,Excel,Model View Controller,Multipart,Form Data,我有一个MVC5应用程序,需要在数据库表中导入Excel文件的数据。ActionResult接收两个参数:Excel文件和idEmbarque(船舶装运id)。问题在于第一个名为“archivoExcel”的参数的值为空 这是“ListaDespacoController”中的操作结果“ImportarLista”(HttpGet和HttpPost): //GET:/ListaDespacho/ImportarLista/ 公共操作结果导入列表A(int?id、字符串barco、字符串nume

我有一个MVC5应用程序,需要在数据库表中导入Excel文件的数据。ActionResult接收两个参数:Excel文件和idEmbarque(船舶装运id)。问题在于第一个名为“archivoExcel”的参数的值为空

这是“ListaDespacoController”中的操作结果“ImportarLista”(HttpGet和HttpPost):

//GET:/ListaDespacho/ImportarLista/
公共操作结果导入列表A(int?id、字符串barco、字符串numerioaz)
{
ListaDespachoViewModels=新的ListaDespachoViewModels
{
CODIGOQUE=(int)id,
NombreDelBarco=barco,
NumeroAZ=NumeroAZ
};
返回视图(模型);
}
//POST:/ListaDespacho/ImportarLista
[HttpPost]
公共操作结果导入列表A(HttpPostedFileBase archivoExcel,int idEmbarque)
{
尝试
{
//利斯塔地区安全委员会
int_codigoque=idEmbarque;
if(archivoExcel!=null)
{
如果(archivoExcel.ContentLength>0)
{
字符串文件扩展名=
System.IO.Path.GetExtension(Request.Files[“archivoExcel”].FileName);
如果(文件扩展名==“.xls”| |文件扩展名==“.xlsx”)
{
字符串fileLocation=Server.MapPath(“~/Content/”)+Request.Files[“archivoExcel”].FileName;
if(System.IO.File.Exists(fileLocation))
{
System.IO.File.Delete(fileLocation);
}
Request.Files[“archivoExcel”].SaveAs(文件位置);
}
}
//在埃利米纳东南部的德斯帕乔斯群岛上,存在着一个令人尴尬的地方
//新达托斯酒店。
//德斯帕乔公共汽车站
var lDsp=(来自_db.ListaDespachos中的ld
其中ld.EmbarqueId==\u
选择ld);
_db.ListaDespachos.Removatange(lDsp);
_db.SaveChanges();
//包括达托斯
字符串usuario=User.Identity.GetUserName().ToString();
var excel=new ExcelQueryFactory();
excel.FileName=@“C:\ImEx\Hojas\u excel\LISTA DESPACHO.xlsx”;
excel.TrimSpaces=LinqToExcel.Query.TrimSpacesType.Both;
excel.StrictMapping=LinqToExcel.Query.StrictMappingType.WorksheetStrict;
var listaDespachoExcel=来自excel中的ld。工作表()选择ld;
如果(listaDespachoExcel.Count()>0)
{
foreach(列表中的var detalle)
{
//字符串_prefijo=detalle.prefijo;
//字符串_numeriocontenter=detalle.numeriocontenter;
if(detalle.Prefijo!=null)
{
var listaDespachos=新列表
{
新的ListaDespacho{Prefijo=detalle.Prefijo,
numeriocontentedor=detalle.numeriocontentedor.ToString(),
塔马尼奥,
比索=detalle.比索,
Viaje=detalle.Viaje,
FullEmpty=(bool)detalle.FullEmpty,
NumeroMarchamo=detalle.NumeroMarchamo.ToString(),
Ubicacion=detalle.Ubicacion.ToString(),
EmbarqueId=_codigoEmbarque,
AudFecha=日期时间。现在,
audusario=usuario}
};
listaDespachos.ForEach(s=>_db.listaDespachos.Add(s));
}
}
//瓜达尔坎比奥斯酒店
_db.SaveChanges();
}
其他的
{
返回视图(“导入列表错误”);
}
返回视图(“ImportarListaExito”);
}              
其他的
{
返回视图(“导入列表错误”);
}
}
捕获(格式化异常)
{
重定向到操作(“错误”,ex);
}
捕获(例外情况除外)
{
重定向到操作(“错误”,ex);
}
返回操作(“索引”);

}
我想发表评论,但我不能:(难道不允许新手发表评论,其他人回答吗?无论如何!在使用表单帖子时,我认为有FormMethod.post是很重要的。如果你不这样做,你还能够将视点转到[HttpPost]吗函数?如果是,我认为可能与绑定有关。可能视图没有边界,您可能希望更新核心库。

感谢您的回答。与HttpPost的行为相关,这正是重点。是的,[HttpPos