gpt4 book ai didi

c# - 具有嵌套区域的 ASP.NET MVC4 应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 10:41:55 26 4
gpt4 key购买 nike

之前,我使用 MVC4 中的区域概念构建了一个可插入的 mvc4 应用程序,如 this 中所述。文章。我在部署这个应用程序时遇到了问题,我按照描述解决了它 here .

现在我想更进一步。我想使用嵌套区域,即区域内的区域。以下是我的项目结构:

enter image description here

这里 MainProj 是主项目,其他项目是区域。现在,在 CRM 区域中,我想添加区域 "ManageAppointments"(这是嵌套区域)

我可以添加这个子区域,但在路由方面遇到问题。 View 引擎永远不会在 ManageAppointments 区域内找到 View 。

我想这个问题是因为路由知道主项目中的区域,但不知道区域内有区域。以更简单的方式,路由知道 CRM 区域,但它从不在 CRM 区域内搜索 MangeAppointment 区域,即它不知道 CRM 区域内还有另一个区域。

目前我所在地区注册CRM和MangeAppointment如下:

客户关系管理:

public class CRMAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "CRM";
}
}

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"CRM_default",
"CRM/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new string[] { "CRM.Controllers" }
);
}
}

管理约会:

public class MangeAppointmentAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "MangeAppointment";
}
}

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"MangeAppointment_default",
"MangeAppointment/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new string[] { "MangeAppointment.Controllers" }
);
}
}

我认为 MangeAppointment 区域注册有问题。提前致谢。

最佳答案

只需按如下方式更改您的 MangeAppointment 区域注册:

public override string AreaName
{
get
{
return "CRM/Areas/MangeAppointment";
}
}

如果您只是返回“MangeAppointment”,它将在主项目中搜索 ManageAppointment,即它将在位置 MainProj/Areas/MangeAppointment 中搜索,这是错误的位置。

但是当您返回 CRM/Areas/MangeAppointment 时,它会在位置 MainProj/Areas/CRM/Areas/MangeAppointment

关于c# - 具有嵌套区域的 ASP.NET MVC4 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25034090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com