Despues de tratar muchas cosas, como por ejemplo Request.Files, HttpContext.Request.Files, encontre la forma de obtener o mejor dicho accesar por completo un file upload en un action de un controller.
Supongamos que el codigo html es el siguiente
html form:
<form name="" method="post" enctype="mulitipart/form-data">
<input type="file" name="file" />
</form>
La manera mas simple de manejar un file en el action de un controller es usando HttpPostedFileBase type:
public ActionResult ImporFile(HttpPostedFileBase file)
{
// Do things with the file here like
/*
var fullPathFile = file.FileName;
var sr = new StreamReader(file.InputStream,Encoding.UTF8);
var filas = 0;
while (sr.ReadLine() != null) { ++filas; }
sr.Close();
*/
return View();
}
Ahora si en base al codigo html te preguntas ¿Cómo debo hacer para añadir enctype=”multipart/form-data” a un form que es generado usando <%Html.BeginForm();%>?
La respuesta es: como parte de los htmlAttributes,Ej.
Html.BeginForm(action,controller, FormMethod.Post, new { enctype="multipart/form-data"})