ASP.NET零:如何在另一个项目中添加新区域?
ASP.NET Zero: How to add new Area in another project?
我已经创建了一个基于零框架的模块化应用程序 tutorial
因为那篇文章没有指导在 Web 模块中创建区域。所以我决定在根 Web 项目中创建另一个区域(名为 Payment)。
- Areas/F1 <--我的默认区域
- Areas/Payment <--新区
我创建了一个非常简单的控制器(继承自项目控制器基础 class),如下所示:
public class BankCodeController : FastOneControllerBase
{
// GET: Payment/BankCode
public ActionResult Index()
{
return View();
}
}
...还有我的 Index.cshtml
@using FastOne.Web.Navigation
@{
ViewBag.CurrentPageName = PageNames.App.Payment.BankCode;
}
<div class="row margin-bottom-5">
<div class="col-xs-12">
<div class="page-head">
<div class="page-title">
<h1>
<span>BankCode</span>
</h1>
</div>
</div>
</div>
</div>
<div class="portlet light">
<div class="portlet-body">
<p>BANK CODE CONTENT COMES HERE!</p>
</div>
</div>
但是当我尝试访问该视图时遇到如下错误
The controller for path '/Payment/BankCode' was not found or does not
implement IController.
> Line 40: @RenderSection("Styles", false)
> Line 41:
> Line 42: @Html.Action("TenantCustomCss", "Layout")
> Line 43:
> Line 44: <script type="text/javascript">
希望任何人都可以帮助我解决这个错误,一些指南可以在模块 Web 项目中创建这个区域(在教程中)。谢谢
更新
我在 ASPNET 零论坛中找到了这个解决方案
由于我使用了F1
区的_Layout.cshtml
,所以出现了这个错误。
我通过将 F1
区域名称添加到 _Layout.cshtml
中的 @Html.Action
用法来修复它。
例如
@Html.Action("Header", "Layout") becomes @Html.Action("Header", "Layout", new { area = "F1" })
@Html.Action("Sidebar", "Layout", new { currentPageName = ViewBag.CurrentPageName }) becomes @Html.Action("Sidebar", "Layout", new { currentPageName = ViewBag.CurrentPageName, area = "F1" })
我已经创建了一个基于零框架的模块化应用程序 tutorial 因为那篇文章没有指导在 Web 模块中创建区域。所以我决定在根 Web 项目中创建另一个区域(名为 Payment)。
- Areas/F1 <--我的默认区域
- Areas/Payment <--新区
我创建了一个非常简单的控制器(继承自项目控制器基础 class),如下所示:
public class BankCodeController : FastOneControllerBase
{
// GET: Payment/BankCode
public ActionResult Index()
{
return View();
}
}
...还有我的 Index.cshtml
@using FastOne.Web.Navigation
@{
ViewBag.CurrentPageName = PageNames.App.Payment.BankCode;
}
<div class="row margin-bottom-5">
<div class="col-xs-12">
<div class="page-head">
<div class="page-title">
<h1>
<span>BankCode</span>
</h1>
</div>
</div>
</div>
</div>
<div class="portlet light">
<div class="portlet-body">
<p>BANK CODE CONTENT COMES HERE!</p>
</div>
</div>
但是当我尝试访问该视图时遇到如下错误
The controller for path '/Payment/BankCode' was not found or does not implement IController.
> Line 40: @RenderSection("Styles", false)
> Line 41:
> Line 42: @Html.Action("TenantCustomCss", "Layout")
> Line 43:
> Line 44: <script type="text/javascript">
希望任何人都可以帮助我解决这个错误,一些指南可以在模块 Web 项目中创建这个区域(在教程中)。谢谢
更新
我在 ASPNET 零论坛中找到了这个解决方案
由于我使用了F1
区的_Layout.cshtml
,所以出现了这个错误。
我通过将 F1
区域名称添加到 _Layout.cshtml
中的 @Html.Action
用法来修复它。
例如
@Html.Action("Header", "Layout") becomes @Html.Action("Header", "Layout", new { area = "F1" })
@Html.Action("Sidebar", "Layout", new { currentPageName = ViewBag.CurrentPageName }) becomes @Html.Action("Sidebar", "Layout", new { currentPageName = ViewBag.CurrentPageName, area = "F1" })