Si escribo así:
form action = "Images" method = "post" enctype = "multipart / form-data"
funciona.
Pero en Razor con '@' no funciona. ¿Cometí algún error?
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<fieldset>
Select a file <input type="file" name="file" />
<input type="submit" value="Upload" />
</fieldset>
}
Mi controlador se ve así:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload()
{
foreach (string file in Request.Files)
{
var uploadedFile = Request.Files[file];
uploadedFile.SaveAs(Server.MapPath("~/content/pics") +
Path.GetFileName(uploadedFile.FileName));
}
return RedirectToAction ("Upload");
}
forms
asp.net-mvc-3
razor
kk-dev11
fuente
fuente
Respuestas:
El siguiente código funciona bien:
y genera como se esperaba:
Por otro lado, si está escribiendo este código dentro del contexto de otra construcción del lado del servidor, como por ejemplo,
if
oforeach
debe eliminar@
antes delusing
. Por ejemplo:En lo que respecta al código del lado del servidor, aquí se explica cómo proceder :
fuente
<form>
etiquetas anidadas (que no están permitidas en HTML) o puede estar usando algún javascript que secuestra el envío normal del formulario y hace una solicitud AJAX que no No funciona con cargas de archivos.GET
acción de carga que servirá a laUpload.cshtml
vista que contiene este código:public ActionResult Upload() { return View(); }
. Así que asegúrese de tener un controlador llamado queUploadController
contenga las dos acciones de Carga: una para entregar el formulario y la otra para procesar el envío.