C# - 我无法引用HttpPostedFileBase

Ted*_*ddy 11 c# model-view-controller upload file httppostedfile

我在CSLA的分布式环境中使用MVC .NET,我可以从我的一个Web层(例如Website.MVC)引用HttpPostedFileBase ,但我不能从单独的层引用HttpPostedFileBase(我们称之为OtherLayer.Web).

关于我需要做什么才能调用HttpPostedFileBase的任何想法?我可以在两个层中使用HttpPostedFile - 我应该只使用它吗?

程序集引用基本相同 - 在Website.MVC中我有:

namespace Website.Mvc.Controllers
{
  using System;
  using System.Collections;
  using System.Collections.Generic;
  using System.Web.Mvc;
  using System.Web;
  using System.IO;
  using PetOrganizer.Mvc.Helpers;
  using TrupanionPetInsurance.Web;
Run Code Online (Sandbox Code Playgroud)

而在我的另一层我有:

namespace OtherLayer.Web
{
  using System;
  using System.Collections;
  using System.Collections.Generic;
  using System.Collections.Specialized;
  using System.Data;
  using System.Data.SqlClient;
  using System.IO;
  using System.Net.Mail;
  using System.Text;
  using System.Text.RegularExpressions; 
  using System.Web;
  using System.Web.Mvc;
  using System.Web.Security;
  using System.Xml;
  using System.Xml.Serialization;
  using Csla;
  using iTextSharp.text;
  using iTextSharp.text.pdf;
  using TruDat.BusinessLayer;
  using TruDat.BusinessLayer.Billing;
  using TruDat.BusinessLayer.Data;
  using TruDat.BusinessLayer.Utility;
  using TrupanionPetInsurance.Web.EmailTemplateParser;
  using TruDat.BusinessLayer.DataServices;
Run Code Online (Sandbox Code Playgroud)

And*_*are 29

确保您的项目引用System.Web.Abstractions包含该HttpPostedFileBase类型的程序集.

尽管看似令人困惑,但HttpPostedFile类型仍然存在于单独的程序集(System.Web)中,但却存在于相同的名称空间中.

重要的是要记住,名称空间可以跨越程序集,程序集的名称不一定决定其中包含的类型的名称空间.没有System.Web.Abstractions 命名空间只有两个程序集包含System.Web命名空间中的类型.

一旦引用了两个程序集,就可以使用这个单一的using语句通过非限定名称引用这两个类型:

using System.Web;
Run Code Online (Sandbox Code Playgroud)