HttpPostedFileBase pas de liaison de modèle
voici mon ViewModel
public class FaultTypeViewModel
{
[HiddenInput(DisplayValue = false)]
public int TypeID { get; set; }
[Required(ErrorMessageResourceType = typeof(AdministrationStrings), ErrorMessageResourceName = "FaultTypeNameRequired")]
[Display(ResourceType = typeof(AdministrationStrings), Name = "FaultTypeName")]
public string TypeName { get; set; }
[Display(ResourceType = typeof(AdministrationStrings), Name = "FaultTypeDescription")]
[DataType(DataType.MultilineText)]
public string TypeDescription { get; set; }
[Display(ResourceType = typeof(AdministrationStrings), Name = "FaultTypeImageFile")]
public HttpPostedFileBase TypeImageFile { get; set; }
[HiddenInput(DisplayValue = false)]
public string TypeImageURL { get; set; }
}
Avis, j'ai une "TypeImageFile" HttpPostedFileBase
Je m'attends à ce que le modèle de classeur serait obligations que le bien de la forme du modèle passe pour le contrôleur de bu-je continuer à recevoir la valeur null.
voici le code correspondant dans la Vue:
@using (Html.BeginForm("AddFaultType","Administration", FormMethod.Post))
{
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
×</button>
<h3 id="myModalLabel">@SharedStrings.Add @SharedStrings.FaultType</h3>
</div>
<div class="modal-body">
@Html.ValidationSummary(true)
<div class="editor-label">
@Html.LabelFor(model => model.TypeName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.TypeName)
@Html.ValidationMessageFor(model => model.TypeName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.TypeDescription)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.TypeDescription)
@Html.ValidationMessageFor(model => model.TypeDescription)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.TypeImageFile)
</div>
<div class="editor-field">
<input type="file" name="TypeImageFile" id="TypeImageFile" />
</div>
</div>
<div class="modal-footer">
<input type="submit" value="@SharedStrings.Add" class="btn btn-primary" />
@Html.ActionLink(SharedStrings.Cancel, "Index", "Administration", null, new { Class = "btn", data_dismiss = "modal", aria_hidden = "true" })
</div>
}
et voici le contrôleur:
[HttpPost]
public ActionResult AddFaultType(FaultTypeViewModel i_FaultToAdd)
{
var fileName = Path.GetFileName(i_FaultToAdd.TypeImageFile.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
i_FaultToAdd.TypeImageFile.SaveAs(path);
return RedirectToAction("Index");
}
heureux de pourim. veuillez inclure votre formulaire dans votre point de vue.
Merci Dave! 🙂 ... Heureux de Pourim à vous, j'ai ajouté de la pleine vue code, y compris la forme.
Merci Dave! 🙂 ... Heureux de Pourim à vous, j'ai ajouté de la pleine vue code, y compris la forme.
OriginalL'auteur Mortalus | 2013-02-23
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que vous avez défini la
enctype
attribut sur votre formulaire demultipart/form-data
sur votre formulaire si vous souhaitez être en mesure de télécharger les fichiers:Avait déjà correctement configuré. Reste juste arriver la valeur null.
Cela peut être fait avec
Ajax.BeginForm
?les travaux de cette. Assurer la saisie du nom correspond au modèle de vue de la propriété et que l'entrée est de type [type="file"]
OriginalL'auteur Darin Dimitrov