ASP.NET MVC 4 C # HttpPostedFileBase, ¿Cómo puedo guardar el archivo?

Modelo

public partial class Assignment { public Assignment() { this.CourseAvailables = new HashSet(); } public string AssignmentID { get; set; } public Nullable SubmissionDate { get; set; } public string Status { get; set; } public Nullable Mark { get; set; } public string Comments { get; set; } public string FileLocation { get; set; } public virtual ICollection CourseAvailables { get; set; } }} 

Controlador

  public ActionResult Create(Assignment assignment) { if (ModelState.IsValid) { db.Assignments.Add(assignment); db.SaveChanges(); return RedirectToAction("Index"); } return View(assignment); } 

Ver

 
model.FileLocation, new { type="file"})%> model.FileLocation) %>

¿Cómo almaceno un archivo si quería almacenar el archivo en la carpeta del servidor / ruta y en la base de datos solo quiero almacenar el nombre / cadena de Ruta?

puede cargar el archivo y guardar su url en la tabla de la base de datos de esta manera:

Ver:

 @using(Html.BeginForm("Create","Assignment",FormMethod.Post,new {enctype="multipart/form-data"})) { ... 
<%: Html.TextBoxFor(model => model.FileLocation, new { type="file"})%> <%: Html.ValidationMessageFor(model => model.FileLocation) %>
... }

Acción:

 [HttpPost] public ActionResult Create(Assignment assignment) { if (ModelState.IsValid) { if(Request.Files.Count > 0) { HttpPostedFileBase file = Request.Files[0]; if (file.ContentLength > 0) { var fileName = Path.GetFileName(file.FileName); assignment.FileLocation = Path.Combine( Server.MapPath("~/App_Data/uploads"), fileName); file.SaveAs(assignment.FileLocation); } db.Assignments.Add(assignment); db.SaveChanges(); return RedirectToAction("Index"); } } return View(assignment); } 

Detalles:

Para una mejor comprensión refiérase a este buen artículo Cargar un archivo (o archivos) con ASP.NET MVC