2011-04-22 54 views
0

我有一個接受HttpPostedFileBase的動作,但發佈此文件的表單可能會命名輸入「File」或「FileToUpload」。由於我無法更改發佈表單的文件輸入名稱,因此我將Bind屬性的Include屬性設置爲我將接受的名稱列表。在HttpPostedFileBase中使用Bind的Include屬性

但是,當文件輸入名爲「File」的表單發佈到此操作時,則FileToUpload參數爲空。見下文。

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult UploadFile([Bind(Include = "File,FileToUpload")] 
     HttpPostedFileBase FileToUpload) 
    { 
     // If the file was posted with the name "File", then FileToUpload is null 
     return View(); 
    } 

任何人都可以解釋爲什麼這是表現這樣嗎?有什麼我誤解了綁定屬性?

回答

6

綁定包含只是說如果它找到該屬性的名稱 - 然後綁定它,否則排除它。由於在你的案件中失蹤,它預計將是空的。考慮一下我的模型是「客戶」的場景,我只希望ModelBinder綁定到CustomerId和EmailAddress,並排除任何其他屬性。在這種情況下,我會指定綁定[Include =「CustomerId,EmailAddress」] 但是 - 如果EmailAddress丟失,那麼它仍然是空的

相關問題