我有3个文件上传和3个与之关联的单选按钮 所有单选按钮都具有相同的名称,以使它们互斥。
查看
<div>
Upload Files:<br />
<p>
<input type="file" name="resim1" id="resim1" />
<%= Html.RadioButton("defaultresim", "", true, new { id = "defaultresim1" })%><label for="defaultresim1">Set as default</label>
</p>
<p>
<input type="file" name="resim2" id="resim2" />
<%= Html.RadioButton("defaultresim", "", true, new { id = "defaultresim2" })%><label for="defaultresim2">Set as default</label>
</p>
<p>
<input type="file" name="resim3" id="resim3" />
<%= Html.RadioButton("defaultresim", "", true, new { id = "defaultresim3" })%><label for="defaultresim3">Set as default</label>
</p>
</div>
我有这样的控制器逻辑。
List<ProductImage> images = new List<ProductImage>();
if (collection != null)
{
for (int i = 0; i < collection.Count; i++)
{
HttpPostedFileBase resim = collection[i];
if (resim != null)
{
ProductImage image = new ProductImage();
byte[] temp = new byte[resim.ContentLength];
resim.InputStream.Read(temp, 0, resim.ContentLength);
image.ImageData = temp;
image.ImageMimeType = resim.ContentType;
// How to get the image that will be marked as default?
//image.IsImageDefault = ??;
images.Add(image);
}
}
}
以下是我的代码段在浏览器上的样子。
我想在循环中理想地获得image.IsImageDefault
值。
我是MVC的新手,仍然使用WebForms,我找不到出路 应该怎样做才能解决这种情况?
答案 0 :(得分:1)
您可以将每个单选按钮的值设置为与集合中文件的索引相对应(例如,0,1,2)。然后,当您循环浏览文件时,请检查您的变量i
是否与defaultresim
表单字段的值相同。
如果没有看到方法签名,执行此操作的一种方法就是从表单集合中检索defaultresim
值:
int defaultresim = int.Parse(Request.Form["defaultresim"]);
然后在你的循环中:
image.IsImageDefault = (i == defaultresim);