3

誰かがこれで私を助けてくれることを願っています。

VS 2012 と MVC4 を使用しています。

HttpPostedFileBaseを使用して、厳密に型指定されたモデルを使用してプロジェクトをテストしています。ビューをスキャフォールディングしようとすると、次のように失敗します。

---------------------------
Microsoft Visual Studio
---------------------------
Unable to retrieve metadata for 'ImageTest.Models.ImageHandler'. Value cannot be null.

Parameter name: key
---------------------------
OK   
---------------------------

ネット上のいくつかの投稿で提案されているように、MVC をアンインストールしてから再インストールしようとしましたが、これは役に立ちませんでした。これは私のモデルです: (はい、ID で [Key] を試しましたが、違いはありません)

using System;
using System.Web;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace ImageTest.Models
{
public class ImageHandler
{
public int Id { get; set; }
public string ImageName { get; set; }
public HttpPostedFileBase File { get; set; }
}
}

コンテキストの問題である可能性があると思いましたが、カスタム コンテキストを作成するか、定義済みのコンテキストを使用するかは問題ではありません。同じエラーが発生します。これは事前定義されたコンテキストです:

using ImageTest.Models;
using System.Data.Entity;

public class ImageHandlerContext : DbContext
{
public ImageHandlerContext() : base("DefaultConnection")
{
}

public DbSet<ImageHandler> ImageHandler { get; set; }
}

テストとして、コメントアウトすると:

// public HttpPostedFileBase File { get; set; }

View を問題なくスキャフォールディングできます。これはバグですか?Scaffolding HttpPostedFileBase がサポートされていないドキュメントはどこにもありません。参照: HttpPostedFileBase

前もって感謝します。

4

2 に答える 2

1

モデルのプロパティとしてできるとは思いません。HttpPostedFileBase少なくとも、EntityFramework を介してマップされ、自動的にスキャフォールディングされることはありません。考えてみると、このプロパティ タイプはどのデータベース フィールドにマップされると思いますか?

実際にバイナリデータをデータベースに保存したい場合は、これを使用してください

public byte[] File { get; set; }

あなたの財産として。

于 2013-06-18T03:49:21.523 に答える