我刚刚创建了一个新的区域来组织我的代码。 但目前我无法将它从我的“基础”或“根”索引页面链接到我的新区域页面。
@Html.ActionLink("Tube Record Form", "BearingAssemblyForm", "_HiCT", new { area = "HICT" }, null)
public class HICTAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "HICT";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"HICT_default",
"HICT/{controller}/{action}/{id}",
new {controller = "_HiCT", action = "BearingAssemblyForm", id = UrlParameter.Optional }
);
}
}
无法找到资源。 它似乎错误地链接了
请求的网址:/ HICT / HiCT / BearingAssemblyForm
控制器:HiCT, 查看/动作:BearingAssemblyForm,区域:HICT。
我怎么会喜欢这个?
非常感谢你。
答案 0 :(得分:1)
试试这个:
@Html.ActionLink("LinkText",
"ActionName",
"ControllerName",
new { area = "HICT" }, null)
我认为您没有使用正确的@Html.ActionLink
方法重载。
首先,查看您的区域是否已正确注册:
public class Routes : AreaRegistration
{
public override string AreaName
{
get
{
return "HICT";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"HICT_default",
"HICT/{controller}/{action}/{id}",
new { controller = "_HiCT", action = "BearingAssemblyForm", id = UrlParameter.Optional }
);
}
确保您在RegisterAllAreas
文件中呼叫Global.asax.cs
:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
...
}
答案 1 :(得分:0)
/主/ BearingAssemblyForm
通常,Master是控制器,第二部分是动作,所以看起来您的控制器名称与您的路线不同。
答案 2 :(得分:0)
你在打电话:
AreaRegistration.RegisterAllAreas();
在Global.asax中的Application_Start
上?你用什么服务器开发Cassini,IISExpress,IIS?
在查看更详细的信息后进行编辑。
如果您有此代码,请在您的管理区域注册文件中
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "CoolProject.Web.Areas.Admin.Contollers" }
);
我认为CoolProject.Web.Areas.Admin.Contollers
中存在拼写错误,应该是CoolProject.Web.Areas.Admin.Controllers
?
答案 3 :(得分:0)
已经有一段时间了,但这应该有效。
@Html.ActionLink("Tube Record Form", "action", "Area/controller")