要从另一个程序集加载ASP.NET视图,可以按照以下步骤进行操作:
步骤1:创建一个类库项目 首先,创建一个类库项目,该项目将包含要加载的视图。可以使用Visual Studio创建一个类库项目,并将其命名为“ViewLibrary”。
步骤2:添加视图 在“ViewLibrary”项目中,添加一个目录并命名为“Views”。然后,在该目录中添加一个视图文件,例如“TestView.cshtml”。
步骤3:设置视图为嵌入资源 将视图文件的“生成操作(Build Action)”设置为“嵌入资源(Embedded Resource)”。这可以通过右键单击视图文件,在属性窗口中进行设置。
步骤4:创建一个ASP.NET Core Web应用程序 创建一个新的ASP.NET Core Web应用程序项目,可以使用Visual Studio创建一个ASP.NET Core MVC项目。
步骤5:添加对类库的引用 在ASP.NET Core Web应用程序项目中,右键单击项目,选择“添加”->“引用”。然后,选择“项目”选项卡,并选择“ViewLibrary”项目,点击“确定”按钮以添加对该类库的引用。
步骤6:加载视图 在ASP.NET Core Web应用程序项目的控制器中,添加以下代码来加载视图:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Razor;
namespace YourProject.Controllers
{
public class HomeController : Controller
{
private readonly IRazorViewEngine _razorViewEngine;
public HomeController(IRazorViewEngine razorViewEngine)
{
_razorViewEngine = razorViewEngine;
}
public IActionResult Index()
{
var viewResult = _razorViewEngine.FindView(ControllerContext, "TestView", false);
if (viewResult.View != null)
{
return View(viewResult.View);
}
return NotFound();
}
}
}
在上述代码中,我们注入了IRazorViewEngine
接口,并在Index
方法中使用FindView
方法来查找视图。如果找到了视图,我们将返回该视图,否则返回“NotFound”页面。
注意:在ASP.NET Core中,视图引擎已经改变,所以我们需要使用IRazorViewEngine
接口来加载视图。
这样,当访问Home/Index
路由时,将加载来自“ViewLibrary”项目的“TestView.cshtml”视图。