1.- Importar las librerias o Pluggin a utilizar, en la pagina Index de tu Vista (donde vas a cargar tu archivo).

2. Luego, en mi PartView le agrego mi Form y demás controles.
<form name="ajaxform" id="ajaxform" action="./Home/ObtenerRutaArchivo/" method="POST"> Archivo :<input type="file" name="photo" accept="xls" /><br/> <input type="submit" id="btn" value="Enviar" />
<div id="progress"> <div id="bar"></div> <div id="percent">0%</div> </div>
</form>
3. En la misma página, Pego mi JavaScript
<script type="text/javascript">
//callback handler for form submit
$('#ajaxform').ajaxForm(function () {
alert("Form is submitted");});function uploadFiles(event) {var formObj = $(this);var formURL = formObj.attr("action");var formData = new FormData(this);$.ajax({url: formURL,type: 'POST',data: formData,mimeType: "multipart/form-data",contentType: false,cache: false,processData: false,success: function (data, textStatus, jqXHR) {$("#div_listWBS").html(data);},error: function (jqXHR, textStatus, errorThrown) {}});//event.preventDefault(); //Prevent Default action.//event.unbind();}$('#ajaxform').on('submit', uploadFiles);</script>
4. En mi Controller "Home": Metodo "ObtenerRutaArchivo"
[HttpPost]
public ActionResult ObtenerRutaArchivo()
{
DataTable dt = new DataTable();
var file = Request.Files[0];
VMWBS BE = new VMWBS();
string momentImport = DateTime.Now.ToString(Constantes.Formaters.datePatt);
try
{
var fileName = Path.GetFileName(file.FileName);
string nombre = momentImport + "_" +file.FileName;
var path = Path.Combine(Server.MapPath("~/xlsx/"), nombre);
file.SaveAs(path);
//Listado.Add(new Cronograma
//{
// cronograma = 1,
// descripcion = "prueba"
//});
dt = CargarExcel(path);
BE.ListCronograma = InsertarExcel(dt);
}
catch (Exception ex)
{
throw ex;
}
return PartialView("_ListWBS", BE);
}
Eso es Todo!!
Referencias URL : Otra solucion aquí