我在一个页面中写了如下代码跳转另一个页面,结果报错 http 404  无法找到资源,甚是不解,href 写的时候是只能提示呀,应该不会错,为什么会找不到资源呢?  新手求大神讲解
<div class="col-sm-4">
            <a href="~/Views/GIS/APDeviceMap.cshtml" style="text-decoration:underline">点击查看</a>      
   </div>  

解决方案 »

  1.   

    用Url.Content()试试
      

  2.   


    <div class="col-sm-4">
                <a href="/GIS/APDeviceMap" style="text-decoration:underline">点击查看</a>      
       </div>  
    这样就好了!
    ==============
    你还是没懂MVC
      

  3.   

    url.content()也不行呀,报一样的错。
      

  4.   

    不行呀,报错请求的 URL: /Handle/NoPermission    
      

  5.   


    Url.Content()也不行呀,一样的错误
      

  6.   

    不行呀,报错请求的 URL: /Handle/NoPermission    
    Handle 控制器下看看有没有 NoPermission    这个Action
      

  7.   

    Mvc需要先访问 action然后才会跳转到 视图
    应该如下,而不是直接跳转试图
    <a href="/controller/action" style="text-decoration:underline">点击查看</a> 
      

  8.   


    那我的href="~/Views/GIS/APDeviceMap.cshtml"   程序不是本身就是先访问GIScontroller/APDeviceMap  然后才加载APDeviceMap.cshtml 页面的吗?
      

  9.   


    那我的href="~/Views/GIS/APDeviceMap.cshtml"   程序不是本身就是先访问GIScontroller/APDeviceMap  然后才加载APDeviceMap.cshtml 页面的吗?
    要先访问action,action中自己会return view();
      

  10.   


    那我的href="~/Views/GIS/APDeviceMap.cshtml"   程序不是本身就是先访问GIScontroller/APDeviceMap  然后才加载APDeviceMap.cshtml 页面的吗?
    要先访问action,action中自己会return view();
    对呀,我的意思就是说href="~/Views/GIS/APDeviceMap.cshtml"   这样写本来就是先访问的对应控制器下的action 然后return view()的吧。  写控制器/Action 不对吧,我试过了,那样行不通啊
      

  11.   

    按照你写的 参数,你得先找到“HandleController”  ,再找到
     public NoPermission Index()
            {
                return View();
            }如果 没有 至少会报404的错误
      

  12.   

    光Views 文件下有这个文件 是不行的,还得要有对应的控制器和Action
      

  13.   

    MVC是请求action,由action渲染视图,你的href请求本身就是错的
      

  14.   

    按照你写的 参数,你得先找到“HandleController”  ,再找到如果 没有 至少会报404的错误
    上面写错 应该是
     public ActionResult  NoPermission()
            {
                return View();
            }
      

  15.   


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

  16.   


     就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler  和  APDeviceAction 对吧? 这个肯定有呀?href="~/Views/GIS/APDeviceMap.cshtml"     肯定有对应的GIScontroller 和 controller 下的APDevice的Action 呀
      

  17.   


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

  18.   

    按照你写的 参数,你得先找到“HandleController”  ,再找到
     public NoPermission Index()
            {
                return View();
            }如果 没有 至少会报404的错误这个当然有了
      

  19.   


     就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler  和  APDeviceAction 对吧? 这个肯定有呀?href="~/Views/GIS/APDeviceMap.cshtml"     肯定有对应的GIScontroller 和 controller 下的APDevice的Action 呀
    你截图我看下你 GIScontroller下的 APDevice,然后就是你超链接写错了,就算有也得这么写
    href="/GIS/APDeviceMap"   你那么些 一定不对可是那个href=""  写到这里的时候就会有只能提示, 然后我就一层一层选下来的,这个也会有错?
      

  20.   


    我就纳闷,怎么就听不懂呢。
    href="controller/action"
    这个很难理解吗?
    你给的 是~/Views/GIS/APDeviceMap.cshtml,这个是什么?一个 view页面。
    已经说到现在了,mvc先访问action。
    楼主如果你连controller和action以及 view是什么都不知道的话,那应该先回去好好看书
    那我的href="~/Views/GIS/APDeviceMap.cshtml"   程序不是本身就是先访问GIScontroller/APDeviceMap  然后才加载APDeviceMap.cshtml 页面的吗?
    要先访问action,action中自己会return view();
    对呀,我的意思就是说href="~/Views/GIS/APDeviceMap.cshtml"   这样写本来就是先访问的对应控制器下的action 然后return view()的吧。  写控制器/Action 不对吧,我试过了,那样行不通啊
      

  21.   


     就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler  和  APDeviceAction 对吧? 这个肯定有呀?href="~/Views/GIS/APDeviceMap.cshtml"     肯定有对应的GIScontroller 和 controller 下的APDevice的Action 呀
    你截图我看下你 GIScontroller下的 APDevice,然后就是你超链接写错了,就算有也得这么写
    href="/GIS/APDeviceMap"   你那么些 一定不对可是那个href=""  写到这里的时候就会有只能提示, 然后我就一层一层选下来的,这个也会有错?
    按照我说的还报404错误?
      

  22.   


    那我的href="~/Views/GIS/APDeviceMap.cshtml"   程序不是本身就是先访问GIScontroller/APDeviceMap  然后才加载APDeviceMap.cshtml 页面的吗?
    要先访问action,action中自己会return view();
    对呀,我的意思就是说href="~/Views/GIS/APDeviceMap.cshtml"   这样写本来就是先访问的对应控制器下的action 然后return view()的吧。  写控制器/Action 不对吧,我试过了,那样行不通啊 汗,,, 我理解了,已经改过来了href="/GIS/APDeviceMap”   ,之前是因为,我href="" 一写出来我就只能提示了,总觉得不会错,被迷惑了。      改过来之后 还是报错   :
    说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。 
    请求的 URL: /Handle/NoPermission
    对应的controller 和 action  也都有 ,上面有图, 求解答,大神你息怒哦, 我是新手,虽然看过很多书,但是实践起来还是很困难,很多东西理解不到位。
      

  23.   


     就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler  和  APDeviceAction 对吧? 这个肯定有呀?href="~/Views/GIS/APDeviceMap.cshtml"     肯定有对应的GIScontroller 和 controller 下的APDevice的Action 呀
    你截图我看下你 GIScontroller下的 APDevice,然后就是你超链接写错了,就算有也得这么写
    href="/GIS/APDeviceMap"   你那么些 一定不对可是那个href=""  写到这里的时候就会有只能提示, 然后我就一层一层选下来的,这个也会有错?
    按照我说的还报404错误?是的 还报404错误
      

  24.   

    改成 href='../Handle/NoPermission'  试试。如果404的话,那把你的 app_start文件夹下的 RouteConfig,以及Handle的controller和NoPermission都发出来看一下
      

  25.   


     就是说我的APDeviceMap页面得有 对应的APDeviceMapcontronler  和  APDeviceAction 对吧? 这个肯定有呀?href="~/Views/GIS/APDeviceMap.cshtml"     肯定有对应的GIScontroller 和 controller 下的APDevice的Action 呀
    你截图我看下你 GIScontroller下的 APDevice,然后就是你超链接写错了,就算有也得这么写
    href="/GIS/APDeviceMap"   你那么些 一定不对可是那个href=""  写到这里的时候就会有只能提示, 然后我就一层一层选下来的,这个也会有错?
    按照我说的还报404错误?是的 还报404错误是不是加权限 限制了,看下权限的控制器,然后你报404页面URL地址我看下
      

  26.   

    既然是MVC 路径就不该这样子写
      

  27.   

    哎,之前跟你说好好看下书,既然还不对,教你个绝招,直接在浏览器导航里面输url
      

  28.   

    <a href="@Url.Action("ActionName", "ControlName", "routeValues" })">
      

  29.   

    建议楼主看看gloab.asax里的代码,路由已经解析到了controller里的,超链接直接指向视图文件,肯定是报404错的,因为路由在controller里是找不到.cshtml这个action的。
    先看看mvc基础吧