我正在开发一个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();
}
答案 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>