获取与ASP.NET MVC中的FileUpload对应的CheckBox值

时间:2012-02-18 07:55:56

标签: c# asp.net asp.net-mvc

我有3个文件上传和3个与之关联的单选按钮 所有单选按钮都具有相同的名称,以使它们互斥。

查看

<div>
    Upload Files:<br />
    <p>
        <input type="file" name="resim1" id="resim1" />
        &nbsp;<%= Html.RadioButton("defaultresim", "", true, new { id = "defaultresim1" })%><label for="defaultresim1">Set as default</label>
    </p> 
    <p>
        <input type="file" name="resim2" id="resim2" />
        &nbsp;<%= Html.RadioButton("defaultresim", "", true, new { id = "defaultresim2" })%><label for="defaultresim2">Set as default</label>
    </p> 
    <p>
        <input type="file" name="resim3" id="resim3" />
        &nbsp;<%= 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);
        }
    }
}

以下是我的代码段在浏览器上的样子。

enter image description here

我想在循环中理想地获得image.IsImageDefault值。

我是MVC的新手,仍然使用WebForms,我找不到出路 应该怎样做才能解决这种情况?

1 个答案:

答案 0 :(得分:1)

您可以将每个单选按钮的值设置为与集合中文件的索引相对应(例如,0,1,2)。然后,当您循环浏览文件时,请检查您的变量i是否与defaultresim表单字段的值相同。

如果没有看到方法签名,执行此操作的一种方法就是从表单集合中检索defaultresim值:

int defaultresim = int.Parse(Request.Form["defaultresim"]);

然后在你的循环中:

image.IsImageDefault = (i == defaultresim);