Jon*_*gel 2 .net c# asp.net-mvc-areas asp.net-mvc-5
新项目无法找到新区域的视图.
它试图在父视图文件夹中找到它.
建议的解决方案是.DataTokens.Add("area", "AREANAME")将该RegisterArea方法付诸实践.
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Test_default",
"Test/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
).DataTokens.Add("area", "Test");
}
Run Code Online (Sandbox Code Playgroud)
但是,有了这个,我得到一个" 已添加相同密钥的项目. "错误.
更新1:我没有对控制器做任何想象.
public ActionResult Index()
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
更新2:我只想补充一点,我也在将组件注册到Unity容器中.但是,我不认为这会导致问题,因为它明确指出没有必要注册我的控制器.
这很可能是因为正在从命名空间中搜索View
YourNamespace.YourApplication.Controllers
Run Code Online (Sandbox Code Playgroud)
而应该从命名空间(或你定义的名称空间)查看它
YourNamespace.YourApplication.Areas.Test.Controllers
Run Code Online (Sandbox Code Playgroud)
在路线声明中添加以下内容
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Test_default",
"Test/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "YourNamespace.YourApplication.Areas.Test.Controllers" }
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1656 次 |
| 最近记录: |