I am running to an issue with .net and MVC. I am trying to select a group of images that is being rendered on the webpage correctly, select a few images via a checkbox, and delete those images. However, the controller is null with no data so I cant do anything with it. Can someone steer me in the correct direction?
EditImages.cshtml
@model Images
@{
ViewBag.Title = "EditImages";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@section CSS
{
<style>
.Image {
position: relative;
float: left;
margin-left: 10px;
border-color: white;
border-style: solid;
border-spacing: 100px;
margin-top: 10px;
color: red;
}
.checkbox {
position: relative;
}
</style>
}
<h2>EditImages</h2>
@using (Html.BeginForm("DeleteImages", "Image", FormMethod.Post))
{
for (var i = 0; i < Model.ImageList.Count(); i++)
{
var modellist = Model.ImageList.ToList();
<div class="Image">
<p class="Image.Font">@Html.DisplayFor(m => modellist[i].FileName</p>
<p>@Html.DisplayFor(m => modellist[i].FullImage.Width) x @Html.DisplayFor(m => modellist[i].FullImage.Height)</p>
<img src="data:image/jpg;base64,@(Html.Raw(Convert.ToBase64String( modellist[i].ByteArray)))" height="225" width="400" />
<p>@Html.CheckBoxFor(m => modellist[i].isSelected, new { id = modellist[i].id })</p>
<label>@modellist[i].id</label>
</div>
}
<p><input type="submit" id="delete" title="Delete1" value="Delete Images" /></p>
}
Controller - ImageController
[HttpPost]
public ActionResult DeleteImages(Images model)
{
//var temp = new Lobby_Monitor.Models.Images();
//temp = model;
string a = "";
return View();
}
Model - Images
public class Images
{
public int id { get; set; }
public string FileName { get; set; }
public string Extension { get; set; }
public byte[] ByteArray { get; set; }
public string UserId { get; set; }
public string UserName { get; set; }
public HttpPostedFileBase postedFile { get; set; }
public string stream_id { get; set; }
public Image FullImage { get; set; }
public IEnumerable<DBImages> ImageList { get; set; }
public Boolean isSelected { get; set; }
}
I''ve ran this through Fiddler to see what was being posted. There is data being posted. I believe with this test, I clicked the first 2 images.
Name Value
modellist[0].isSelected true
modellist[0].isSelected false
modellist[1].isSelected true
modellist[1].isSelected false
modellist[2].isSelected false
modellist[3].isSelected false
modellist[4].isSelected false
Sample of Generated HTML
<div class="Image">
<p class="Image.Font">Capture.PNG</p>
<p>1667 x 866</p>
<img src="image stuff" height="225" width="400" />
<p><input data-val="true" data-val-required="The isSelected field is required." id="2" name="modellist[1].isSelected" type="checkbox" value="true" /><input name="modellist[1].isSelected" type="hidden" value="false" /></p>
<label>2</label>
<p><input type="submit" id="delete" title="Delete1" value="Delete Images" /></p>
</div>
<div class="Image">
<p class="Image.Font">tunein.png</p>
<p>703 x 753</p>
<img src="image stuff" height="225" width="400" />
<p><input data-val="true" data-val-required="The isSelected field is required." id="3" name="modellist[2].isSelected" type="checkbox" value="true" /><input name="modellist[2].isSelected" type="hidden" value="false" /></p>
<label>3</label>
<p><input type="submit" id="delete" title="Delete1" value="Delete Images" /></p>
</div>
<div class="Image">
<p class="Image.Font">Qatar-Museum-1920x1080.jpg</p>
<p>1920 x 1080</p>
<img src="" height="225" width="400" />
<p><input data-val="true" data-val-required="The isSelected field is required." id="4" name="modellist[3].isSelected" type="checkbox" value="true" /><input name="modellist[3].isSelected" type="hidden" value="false" /></p>
<label>4</label>
<p><input type="submit" id="delete" title="Delete1" value="Delete Images" /></p>
</div>
<div class="Image">
<p class="Image.Font">Brooklyn-College-1920x1080.jpg</p>
<p>1920 x 1080</p>
<img src="image info" height="225" width="400" />
<p><input data-val="true" data-val-required="The isSelected field is required." id="5" name="modellist[4].isSelected" type="checkbox" value="true" /><input name="modellist[4].isSelected" type="hidden" value="false" /></p>
<label>5</label>
<p><input type="submit" id="delete" title="Delete1" value="Delete Images" /></p>
</div>
<p><input type="submit" id="delete" title="Delete1" value="Delete Images" /></p>