2013-03-21 38 views
1

我已經搜索了這個答案的高和低,但找不到任何東西....我是愚蠢的?如何爲HttpPostedFileBase類型創建MVC模型?

protected override void Seed(MyContext context) 
    { 
     context.Items.Add(new Item 
     { 
      URL = "my-url-field", 
      Title = "My Title for this Item", 
      Image = "some-image-file.jpg" // this is httppostedfilebase - how to seed this? 
     }); 
    } 

我想我必須實例化一個httppostedfilebase對象,但我該怎麼做呢?

回答

1

我認爲HttpPostedFileBase是您的模型的錯誤屬性。您可能希望將Image屬性設置爲byte[] - 這將存儲在數據庫中。如果您需要的文件名,以及,你可以只讓上Item

一個字符串屬性之後,你的種子的方法看起來就像

... 
Image = File.ReadAllBytes("some-image-file.jpg"), 
Filename = "some-image-file.jpg" 
... 
+1

謝謝斯坦....我想我得到了錯誤的結束棒的地方。我認爲httppostedfilebase會自動給我上傳文件作爲編輯器的輸入。字節[]屬性會將圖像文件存儲爲數據庫中的二進制文件嗎?我在想我應該只是爲了一個字符串類型的文件名屬性。 – 2013-03-21 17:02:02

+1

yes - 如果您打算將實際文件數據存儲在數據庫中,則byte []將用於該文件。如果你正在上傳文件,你的動作將需要httppostedfilebase來獲取文件 - 但是這不應該是你EF模型的一部分 - 這應該只是你的ViewModel – StanK 2013-03-21 20:02:53

+0

瞭解的一部分。非常感謝澄清所有這些位。 – 2013-03-21 20:32:58