ASP.Net MVC Views(*.aspx)可以在多个ASP.net MVC项目中重用吗?

Dav*_*d H 9 asp.net-mvc

我想在多个ASP.Net MVC项目中重用*.aspx文件.这可能吗?

编辑:Anthony建议使用版本控制系统在多个项目中共享公共文件,以实用的方式解决了我的问题.幸运的是,因为我正在使用Subversion,所以解决方案适合我.但是,如果我没有使用它,这个问题怎么还能解决?

可以这样做吗?

  1. 使用VS的网站预编译功能构建可再发行的用户控件.(如所描述的在这里).
  2. 引用所需项目中的输出程序集.
  3. 创建一个修改后的View引擎,通过泛型类型参数实例化用户控件.

然后我们构造这样的控制器动作:

public ActionResult Shared()
{
    return View<SharedPageOrUserControl>();
}
Run Code Online (Sandbox Code Playgroud)

这看起来有可能吗?

Jar*_*xon 9

你可以尝试的一个想法是:

  1. 为共享视图创建项目(类库)
  2. 在"属性"窗格中添加和设置任何*.aspx标记页面到" 嵌入资源 "
  3. 添加一个继承自ActionResult的类"EmbeddedViewResult" - 这将包含逻辑,以确保在控制器操作结束时调用时,在磁盘上提取并提供嵌入的.aspx文件.

因此,在您希望使用共享视图的项目中,控制器操作可能会返回类似的内容

public ActionResult Shared()
{
    return new EmbeddedViewResult("SharedLib.SharedPage");
}
Run Code Online (Sandbox Code Playgroud)

我已经用WebForms页面做了类似的事情,所以它应该是可能的.


Ant*_*nes 2

我通常通过源代码控制来解决此类问题。大多数系统(甚至 VSS)允许您在多个项目之间共享文件。

  • -1; 共享是 SCM 的反模式。(签入其中一个副本会使您的文件处于不一致的状态,直到您记得执行更新副本为止)。 (2认同)