Comment envoyer plusieurs paramètres à l'aide de Html.BeginForm() dans asp.net mvc?
En fait, je veux envoyer l'image et le texte dans la zone de texte pour le contrôleur...
@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.Label("UserName:") <input type="text" id="txtImg" name="txtImg" /><br /><br />
@Html.Label("Upload:")<input type="file" name="image" /><br/>
<div id="Preview">
Preview
</div>
<input class="btn btn-success btnUpload" type="submit" value="upload" />
}
et je suis en train de les récupérer dans le contrôleur dans le dessous de façon à:
public ActionResult Upload(HttpPostedFileBase image,string txtImg)
mais je ne suis pas aller la zone de texte valeur..Est quelque chose de mal avec code?
J'ai mon exemple de code comme celui-ci.
Controller:
public ActionResult Upload()
{
BlobStorageServices _blobstorageservice = new BlobStorageServices();
CloudBlobContainer container = _blobstorageservice.GetCloudBlobContainer();
List<string> blobs = new List<string>();
//List<BlobModel> models = BlobManager.getBlobs();
foreach (var blobItem in container.ListBlobs())
{
blobs.Add(blobItem.Uri.ToString());
}
return View(blobs);
}
[HttpPost]
public ActionResult Upload(string txtImg,HttpPostedFileBase image)
{
if (image.ContentLength > 0)
{
BlobStorageServices _blobstorageservice = new BlobStorageServices();
CloudBlobContainer container = _blobstorageservice.GetCloudBlobContainer();
CloudBlockBlob blob = container.GetBlockBlobReference(image.FileName);
//BlobManager.insertBlobUri(new BlobImage { Uri = blob.Uri.ToString() });
//string text = model.Name;
BlobManager.insertBlobUri(new BlobModel {Name=txtImg,Uri=blob.Uri.ToString()});
blob.UploadFromStream(image.InputStream);
}
return RedirectToAction("Upload");
}
View
@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.Label("UserName:") <input type="text" id="txtImg" name="txtImg" /><br /><br />
@Html.Label("Upload:")<input type="file" name="image" id="upload"/><br/>
<div id="Preview">
Preview<img id="blah" src="#" alt="your image" />
</div>
<input class="btn btn-success btnUpload" type="submit" value="upload" />
}
<table style="border:1">
@foreach (var item in Model)
{
<tr style="border:1">
<td><img src="@item" alt="image" class="img-responsive" width="100" height="100" /></td>
<td><button class="btn btn-primary Delete" id="@item" onclick="deleteImage('@item');">Delete</button></td>
<td><a class="btn btn-primary Download" href="@item" target="_blank">Download Image</a></td>
<td><button class="btn btn-primary Download" onclick="updateImage('@item');">UpdateImage</button></td>
</tr>
}
Je vous envoie les gouttes directement dans la vue , c'est le problème de coeur..Comment utiliser un modèle pour insérer du texte,bloburl,de l'image?
- Cela fonctionne si vous modifiez l'ordre des paramètres de
Upload(string txtImg, HttpPostedFileBase image)
?
Vous devez vous connecter pour publier un commentaire.
Visite Téléchargement/Affichage des Images dans MVC 4
Cela m'a beaucoup aidé pour télécharger des images,
En Termes de récupération de données à partir de la Vue du contrôleur, un meilleur moyen est d'utiliser un ViewModel comme
et votre point de vue ressemblerait à quelque chose comme
et le contrôleur
Espère que cela aide 🙂