我目前正在使用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。
答案 0 :(得分:3)
在方法中放入一个断点并检查product.ImageMimeType的值。我想你会发现它是null或空字符串。要么没有从数据库中检索它,要么数据库中没有包含任何内容。