MVC - 无法找到资源

时间:2015-05-12 16:03:36

标签: asp.net-mvc

我正在开发一个MVC项目,每当我尝试点击“关于”或“联系”时,我得到:

  

描述:HTTP 404.您要查找的资源(或其中一个资源依赖项)可能已被删除,名称可能包含   已更改或暂时不可用。检查URL的拼写   以下是正确的。

     

请求的网址:/Views/Home/Contact.cshtml

我能够访问起始页(索引),但是一旦我尝试重定向到“关于”或“联系”这样的联系页面,我会收到上面提到的错误消息。

这是我的代码:

   <ul id="nav">
            <li><a href="~/Views/Home/Index.cshtml">Home</a></li>
            <li><a href="~/Views/Home/About.cshtml">About</a></li>
            <li><a href="~/Views/Home/Contact.cshtml">Contact</a></li>
        </ul>

我的HomeController:

  public ActionResult Index()
        {
            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }

The File directory structure

3 个答案:

答案 0 :(得分:3)

您不应该链接到cshtml个文件。这些文件旨在由视图引擎呈现。我相信你应该链接到你的控制器回复你的观点的行为。

<ul id="nav">
    <li>@Html.ActionLink("Home", "Index", "Home")</li>
    <li>@Html.ActionLink("About", "About", "Home")</li>
    <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>

答案 1 :(得分:1)

从链接中删除.cshtml和/ view /:

<ul id="nav">
    <li><a href="~/Home/Index">Home</a></li>
    <li><a href="~/Home/About">About</a></li>
    <li><a href="~/Home/Contact">Contact</a></li>
</ul>

在MVC中,您的网址指向操作而非网页

答案 2 :(得分:1)

您必须使用网络表单(.aspx)页面。 MVC不是这样工作的。 在代码中,您已在HomeController中指定了3个操作。默认MVC路由为/{controller}/{Action}/{other param},因此您的代码将变为

<ul id="nav">
        <li><a href="/Home/Index">Home</a></li>
        <li><a href="/Home/About">About</a></li>
        <li><a href="/Home/Contact">Contact</a></li>
    </ul>