在业务层中使用Server.MapPath

lev*_*vis 7 c# asp.net-mvc server.mappath business-layer

我的业务层创建文件,需要将它们保存在App_Data我的asp.net mvc 4 web前端的文件夹中.

我可以Server.MapPath在业务层中使用来获取App_Data文件夹的物理路径.但我想避免System.Web在业务层中引用.

是否还有其他方法可以App_Data在业务层中获取路径?

Eri*_*sch 31

处理此问题的正确方法是使表示层将路径传递到业务层.

换句话说,拥有业务层的目的是在ui和业务流程之间创建关注点分离.如果您强制业务流程了解ui层,那么您就违反了关注点.

有很多方法可以解决这个问题.在构造业务层时,您可以将路径传递到业务层,例如通过构造函数初始化或通过依赖注入.或者您可以将其传递给方法调用.或者,您可以创建某种形式的配置文件,业务层加载包含路径的配置文件.

有很多方法可以解决这个问题.


Ela*_*amy 17

您可以使用

string  path = System.AppDomain.CurrentDomain.BaseDirectory+"App_Data";
Run Code Online (Sandbox Code Playgroud)


Sha*_*lin 5

string path = HostingEnvironment.MapPath("~\\App_Data");
Run Code Online (Sandbox Code Playgroud)

这个对我有用