MVC4下多层Controller和多层View的问题
1:Controller下创建目录basicinfo,basicinfo目录下有UserInfoController,然后配置路由routes.MapRoute( _
name:="BasicInfo", _
url:="basicinfo/{controller}/{action}/{id}", _
defaults:=New With {.controller = "Login", .action = "doLogin", .id = UrlParameter.Optional} _
)
希望输入路径是xxxx/basicinfo/UserInfo/List这样的格式
问题:
1-1 在View下画面中使用如下
<li>@Html.ActionLink("用户信息", "List", "basicinfo/UserInfo")</li>
<li>@Html.ActionLink("部门信息", "Index", "DepartmentInfo")</li>
生成的Html的URL 成了/basicinfo/basicinfo/UserInfo/List和/basicinfo/DepartmentInfo/Index,请问这个是为什么
2:View下创建目录,网上说要如下做
Public Class AlcViewEngine
Inherits RazorViewEngine
Public Sub New()
ViewLocationFormats = New String() {
"~/Views/{1}/{0}.cshtml",
"~/Views/Shared/{0}.cshtml",
"~/Views/basicinfo/{1}/{0}.cshtml"
}
End Sub
Public Overrides Function FindView(controllerContext As ControllerContext, viewName As String, masterName As String, useCache As Boolean) As ViewEngineResult
Return MyBase.FindView(controllerContext, viewName, masterName, useCache)
End Function
End Class
问题:运行程序直接出错,错误信息如下
[InvalidOperationException: ビュー 'Login' またはそのマスターが見つからなかったか、検索先の場所をサポートしているビュー エンジンがありません。次の場所を検索しました: 不好意思,是日文系统啊 --------------------编程问答-------------------- 谁来给我说说啊
--------------------编程问答-------------------- 有没有未找到主人或视图'登录',支持搜索目标的位置的视图引擎。我搜索了下一个位置
谷歌是这样翻译的 --------------------编程问答-------------------- controller的命名空间跟view的物理路径没绝对联系的。
默认viewengine在无area配置情况下会用 /Views/{controller}/{view}.cshtml来查找视图,也可以自己另外配置
即使是 Controllers.XXX.YYY.ZZZ.UserController,也会在 /Views/User/ 下查找视图 --------------------编程问答-------------------- 楼上的,我现在是想在URl里面输入 .../a/b/UserInfo/List的时候,能执行到Controllers下a/b/UserInfo这个Controller,然后跳转页面到Views/a/b/User里面,应该怎么做 --------------------编程问答-------------------- 办法肯定是有的,但是纯属蛋疼,没一点意义。要么放弃,要么变通一下用框架本身提供的area机制。
补充:.NET技术 , ASP.NET