mvc 5.0 页面跳转问题?

baidu_37366484 2017-02-14 09:09:23
我在一个页面中写了如下代码跳转另一个页面,结果报错 http 404 无法找到资源,甚是不解,href 写的时候是只能提示呀,应该不会错,为什么会找不到资源呢? 新手求大神讲解
<div class="col-sm-4">
<a href="~/Views/GIS/APDeviceMap.cshtml" style="text-decoration:underline">点击查看</a>
</div>
...全文
578 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq972666093 2017-02-17
  • 打赏
  • 举报
回复
/控制器名/方法名
robake 2017-02-15
  • 打赏
  • 举报
回复
建议楼主看看gloab.asax里的代码,路由已经解析到了controller里的,超链接直接指向视图文件,肯定是报404错的,因为路由在controller里是找不到.cshtml这个action的。 先看看mvc基础吧
编程有钱人了 2017-02-14
  • 打赏
  • 举报
回复
引用 25 楼 baidu_37366484 的回复:
[quote=引用 23 楼 wangjun8868 的回复:] [quote=引用 21 楼 baidu_37366484 的回复:] [quote=引用 19 楼 wangjun8868 的回复:] [quote=引用 18 楼 baidu_37366484 的回复:] [quote=引用 17 楼 baidu_37366484 的回复:] [quote=引用 13 楼 wangjun8868 的回复:] 光Views 文件下有这个文件 是不行的,还得要有对应的控制器和Action
就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler 和 APDeviceAction 对吧? 这个肯定有呀?[/quote] href="~/Views/GIS/APDeviceMap.cshtml" 肯定有对应的GIScontroller 和 controller 下的APDevice的Action 呀[/quote] 你截图我看下你 GIScontroller下的 APDevice,然后就是你超链接写错了,就算有也得这么写 href="/GIS/APDeviceMap" 你那么些 一定不对[/quote] 可是那个href="" 写到这里的时候就会有只能提示, 然后我就一层一层选下来的,这个也会有错?[/quote] 按照我说的还报404错误?[/quote] 是的 还报404错误[/quote]是不是加权限 限制了,看下权限的控制器,然后你报404页面URL地址我看下
正怒月神 版主 2017-02-14
  • 打赏
  • 举报
回复
引用 24 楼 baidu_37366484 的回复:
很多东西理解不到位。
改成 href='../Handle/NoPermission' 试试。如果404的话,那把你的 app_start文件夹下的 RouteConfig,以及Handle的controller和NoPermission都发出来看一下
baidu_37366484 2017-02-14
  • 打赏
  • 举报
回复
引用 23 楼 wangjun8868 的回复:
[quote=引用 21 楼 baidu_37366484 的回复:] [quote=引用 19 楼 wangjun8868 的回复:] [quote=引用 18 楼 baidu_37366484 的回复:] [quote=引用 17 楼 baidu_37366484 的回复:] [quote=引用 13 楼 wangjun8868 的回复:] 光Views 文件下有这个文件 是不行的,还得要有对应的控制器和Action
就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler 和 APDeviceAction 对吧? 这个肯定有呀?[/quote] href="~/Views/GIS/APDeviceMap.cshtml" 肯定有对应的GIScontroller 和 controller 下的APDevice的Action 呀[/quote] 你截图我看下你 GIScontroller下的 APDevice,然后就是你超链接写错了,就算有也得这么写 href="/GIS/APDeviceMap" 你那么些 一定不对[/quote] 可是那个href="" 写到这里的时候就会有只能提示, 然后我就一层一层选下来的,这个也会有错?[/quote] 按照我说的还报404错误?[/quote] 是的 还报404错误
baidu_37366484 2017-02-14
  • 打赏
  • 举报
回复
引用 22 楼 hanjun0612 的回复:
我就纳闷,怎么就听不懂呢。 href="controller/action" 这个很难理解吗? 你给的 是~/Views/GIS/APDeviceMap.cshtml,这个是什么?一个 view页面。 已经说到现在了,mvc先访问action。 楼主如果你连controller和action以及 view是什么都不知道的话,那应该先回去好好看书 [quote=引用 11 楼 baidu_37366484 的回复:] [quote=引用 10 楼 hanjun0612 的回复:] [quote=引用 9 楼 baidu_37366484 的回复:] [quote=引用 8 楼 hanjun0612 的回复:] Mvc需要先访问 action然后才会跳转到 视图 应该如下,而不是直接跳转试图 <a href="/controller/action" style="text-decoration:underline">点击查看</a>
那我的href="~/Views/GIS/APDeviceMap.cshtml" 程序不是本身就是先访问GIScontroller/APDeviceMap 然后才加载APDeviceMap.cshtml 页面的吗?[/quote] 要先访问action,action中自己会return view(); [/quote] 对呀,我的意思就是说href="~/Views/GIS/APDeviceMap.cshtml" 这样写本来就是先访问的对应控制器下的action 然后return view()的吧。 写控制器/Action 不对吧,我试过了,那样行不通啊[/quote][/quote] 汗,,, 我理解了,已经改过来了href="/GIS/APDeviceMap” ,之前是因为,我href="" 一写出来我就只能提示了,总觉得不会错,被迷惑了。 改过来之后 还是报错 : 说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。 请求的 URL: /Handle/NoPermission 对应的controller 和 action 也都有 ,上面有图, 求解答,大神你息怒哦, 我是新手,虽然看过很多书,但是实践起来还是很困难,很多东西理解不到位。
编程有钱人了 2017-02-14
  • 打赏
  • 举报
回复
引用 21 楼 baidu_37366484 的回复:
[quote=引用 19 楼 wangjun8868 的回复:] [quote=引用 18 楼 baidu_37366484 的回复:] [quote=引用 17 楼 baidu_37366484 的回复:] [quote=引用 13 楼 wangjun8868 的回复:] 光Views 文件下有这个文件 是不行的,还得要有对应的控制器和Action
就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler 和 APDeviceAction 对吧? 这个肯定有呀?[/quote] href="~/Views/GIS/APDeviceMap.cshtml" 肯定有对应的GIScontroller 和 controller 下的APDevice的Action 呀[/quote] 你截图我看下你 GIScontroller下的 APDevice,然后就是你超链接写错了,就算有也得这么写 href="/GIS/APDeviceMap" 你那么些 一定不对[/quote] 可是那个href="" 写到这里的时候就会有只能提示, 然后我就一层一层选下来的,这个也会有错?[/quote] 按照我说的还报404错误?
正怒月神 版主 2017-02-14
  • 打赏
  • 举报
回复
我就纳闷,怎么就听不懂呢。 href="controller/action" 这个很难理解吗? 你给的 是~/Views/GIS/APDeviceMap.cshtml,这个是什么?一个 view页面。 已经说到现在了,mvc先访问action。 楼主如果你连controller和action以及 view是什么都不知道的话,那应该先回去好好看书
引用 11 楼 baidu_37366484 的回复:
[quote=引用 10 楼 hanjun0612 的回复:] [quote=引用 9 楼 baidu_37366484 的回复:] [quote=引用 8 楼 hanjun0612 的回复:] Mvc需要先访问 action然后才会跳转到 视图 应该如下,而不是直接跳转试图 <a href="/controller/action" style="text-decoration:underline">点击查看</a>
那我的href="~/Views/GIS/APDeviceMap.cshtml" 程序不是本身就是先访问GIScontroller/APDeviceMap 然后才加载APDeviceMap.cshtml 页面的吗?[/quote] 要先访问action,action中自己会return view(); [/quote] 对呀,我的意思就是说href="~/Views/GIS/APDeviceMap.cshtml" 这样写本来就是先访问的对应控制器下的action 然后return view()的吧。 写控制器/Action 不对吧,我试过了,那样行不通啊[/quote]
baidu_37366484 2017-02-14
  • 打赏
  • 举报
回复
引用 19 楼 wangjun8868 的回复:
[quote=引用 18 楼 baidu_37366484 的回复:]
[quote=引用 17 楼 baidu_37366484 的回复:]
[quote=引用 13 楼 wangjun8868 的回复:]
光Views 文件下有这个文件 是不行的,还得要有对应的控制器和Action


就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler 和 APDeviceAction 对吧? 这个肯定有呀?[/quote]

href="~/Views/GIS/APDeviceMap.cshtml" 肯定有对应的GIScontroller 和 controller 下的APDevice的Action 呀[/quote]
你截图我看下你 GIScontroller下的 APDevice,然后就是你超链接写错了,就算有也得这么写
href="/GIS/APDeviceMap" 你那么些 一定不对[/quote]



可是那个href="" 写到这里的时候就会有只能提示, 然后我就一层一层选下来的,这个也会有错?
baidu_37366484 2017-02-14
  • 打赏
  • 举报
回复
引用 12 楼 wangjun8868 的回复:
[quote=引用 7 楼 baidu_37366484 的回复:] 页面是肯定存在的,如上图
按照你写的 参数,你得先找到“HandleController” ,再找到 public NoPermission Index() { return View(); } 如果 没有 至少会报404的错误[/quote] 这个当然有了
编程有钱人了 2017-02-14
  • 打赏
  • 举报
回复
引用 18 楼 baidu_37366484 的回复:
[quote=引用 17 楼 baidu_37366484 的回复:] [quote=引用 13 楼 wangjun8868 的回复:] 光Views 文件下有这个文件 是不行的,还得要有对应的控制器和Action
就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler 和 APDeviceAction 对吧? 这个肯定有呀?[/quote] href="~/Views/GIS/APDeviceMap.cshtml" 肯定有对应的GIScontroller 和 controller 下的APDevice的Action 呀[/quote] 你截图我看下你 GIScontroller下的 APDevice,然后就是你超链接写错了,就算有也得这么写 href="/GIS/APDeviceMap" 你那么些 一定不对
baidu_37366484 2017-02-14
  • 打赏
  • 举报
回复
引用 17 楼 baidu_37366484 的回复:
[quote=引用 13 楼 wangjun8868 的回复:] 光Views 文件下有这个文件 是不行的,还得要有对应的控制器和Action
就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler 和 APDeviceAction 对吧? 这个肯定有呀?[/quote] href="~/Views/GIS/APDeviceMap.cshtml" 肯定有对应的GIScontroller 和 controller 下的APDevice的Action 呀
baidu_37366484 2017-02-14
  • 打赏
  • 举报
回复
引用 13 楼 wangjun8868 的回复:
光Views 文件下有这个文件 是不行的,还得要有对应的控制器和Action
就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler 和 APDeviceAction 对吧? 这个肯定有呀?
编程有钱人了 2017-02-14
  • 打赏
  • 举报
回复
引用 12 楼 wangjun8868 的回复:
[quote=引用 7 楼 baidu_37366484 的回复:] 页面是肯定存在的,如上图
按照你写的 参数,你得先找到“HandleController” ,再找到 如果 没有 至少会报404的错误[/quote] 上面写错 应该是 public ActionResult NoPermission() { return View(); }
lovebaby 2017-02-14
  • 打赏
  • 举报
回复
MVC是请求action,由action渲染视图,你的href请求本身就是错的
我是三峡移民 2017-02-14
  • 打赏
  • 举报
回复
哎,好好看书…………
编程有钱人了 2017-02-14
  • 打赏
  • 举报
回复
光Views 文件下有这个文件 是不行的,还得要有对应的控制器和Action
编程有钱人了 2017-02-14
  • 打赏
  • 举报
回复
引用 7 楼 baidu_37366484 的回复:
页面是肯定存在的,如上图
按照你写的 参数,你得先找到“HandleController” ,再找到 public NoPermission Index() { return View(); } 如果 没有 至少会报404的错误
baidu_37366484 2017-02-14
  • 打赏
  • 举报
回复
引用 10 楼 hanjun0612 的回复:
[quote=引用 9 楼 baidu_37366484 的回复:] [quote=引用 8 楼 hanjun0612 的回复:] Mvc需要先访问 action然后才会跳转到 视图 应该如下,而不是直接跳转试图 <a href="/controller/action" style="text-decoration:underline">点击查看</a>
那我的href="~/Views/GIS/APDeviceMap.cshtml" 程序不是本身就是先访问GIScontroller/APDeviceMap 然后才加载APDeviceMap.cshtml 页面的吗?[/quote] 要先访问action,action中自己会return view(); [/quote] 对呀,我的意思就是说href="~/Views/GIS/APDeviceMap.cshtml" 这样写本来就是先访问的对应控制器下的action 然后return view()的吧。 写控制器/Action 不对吧,我试过了,那样行不通啊
正怒月神 版主 2017-02-14
  • 打赏
  • 举报
回复
引用 9 楼 baidu_37366484 的回复:
[quote=引用 8 楼 hanjun0612 的回复:] Mvc需要先访问 action然后才会跳转到 视图 应该如下,而不是直接跳转试图 <a href="/controller/action" style="text-decoration:underline">点击查看</a>
那我的href="~/Views/GIS/APDeviceMap.cshtml" 程序不是本身就是先访问GIScontroller/APDeviceMap 然后才加载APDeviceMap.cshtml 页面的吗?[/quote] 要先访问action,action中自己会return view();
加载更多回复(13)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧