MVC3 - 值不能为null或为空。参数名称:contentType

时间:2011-03-19 20:13:17

标签: asp.net-mvc-3

我目前正在使用Steven Sanderson的书籍Pro ASP.NET MVC 2 Framework。但我正在使用MVC 3框架。这个问题与我之前的问题有关。我收到以下错误...

值不能为null或为空。参数名称:指向行的contentType ...
return File(product.Picture1,product.ImageMimeType);.

他在书中说......

  

我们不希望在产品编辑用户界面中直接显示这些属性中的任何一个。我们可以使用[ScaffoldColumn(false)]从自动生成的UI中排除ImageMimeType。我们不需要提供有关ImageData的任何提示,因为ASP.NET MVC的内置对象编辑器模板无论如何都不会支持byte []属性 - 它只支持“简单”类型的属性,如string,int和DateTime.5 。

所以我已经这样做了并且仍然收到相同的错误消息?如果可能,如何解决这个问题。

Index.cshtml

@foreach (var item in Model) 
<td>
      <img src="@Url.Action("GetImage", "ProductCategoryL2", new { id =  
      @item.SubProductCategoryID })" alt="" height="100" width="100" /> 
    </td>

Edit.cshtml

@using (Html.BeginForm("ProductCategoryL2", "GetImage", FormMethod.Post, 
new { @enctype = "multipart/form-data" }))
{
  <div class="editor-field">
     <img src="@Url.Action("GetImage", "ProductCategoryL2", new { id = 
      @Model.SubProductCategoryID })" alt="" /> 
      @Html.ValidationMessage("Picture1", "*")
     <input type="file" name="Image" size="23"/>
  </div>
}

cs文件

public FileContentResult GetImage(int id)
    {
        var product = db.SubProductCategory2.First(x => 
        x.SubProductCategoryID == id);
        return File(product.Picture1, product.ImageMimeType); //Value cannot be null or empty. Parameter name: contentType 
    }

另一个cs文件

   [ScaffoldColumn(false)]
   public string ImageMimeType { get; set; }

我在SQL Server 2008R2中为ImageMimeType设置了与本书完全相同的字段。我正在使用VS 2010 ASP.NET 4.0 MVC3。提前致谢。表名是SubProductCategory2。

1 个答案:

答案 0 :(得分:3)

在方法中放入一个断点并检查product.ImageMimeType的值。我想你会发现它是null或空字符串。要么没有从数据库中检索它,要么数据库中没有包含任何内容。