我有一个对我来说很奇怪的问题。我正在制作MVC项目,当我在我的网站上点击“联系”时,它没有将我重定向到“联系”页面,它显示以下消息: error 错误文本:说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。
后面的代码是:
<li>
<a href="~/Views/Home/Contact.cshtml">Contact</a>
</li>
如果我进入文件夹View并在Firefox Contact.cshtml中直接打开它会正常打开... PLZ帮助,因为我是noob ..
答案 0 :(得分:1)
在MVC项目中,View文件不是直接提供的,它们总是首先通过Controller Action。
这是因为View文件首先需要一些数据(View-model),而Controller是创建View模型的责任。
如果您的View实际上不需要任何数据,那么您可以编写一个为其提供服务的Controller操作:
public class HomeController : Controller {
public ActionResult Contact() {
return this.View(); // returns the "Contact" view under "Home", these values are inferred from the Controller's name "HomeController" and the action name "Contact"
}
}
您的链接应该看起来像<a href="@Url.Action( "Contact", "Home" )>Contact</a>
或`@ Html.ActionLink(“联系方式”,“主页”)
或者,如果您想要一个仅由.cshtml
组成的简单网站,请查看ASP.NET WebPages:https://docs.microsoft.com/en-us/aspnet/web-pages/overview/getting-started/introducing-aspnet-web-pages-2/getting-started
答案 1 :(得分:0)
我找到了答案。这很简单,我很惭愧我做了什么错误......我唯一需要做的就是:
@Html.ActionLink("Contact","Contact", "Home")
和内部列表删除<a href="#">Contact</a>
所以我从index.cshtml导航到其他视图的最终结果是:
<ul class="nav navbar-nav">
<li>
@Html.ActionLink("About","About", "Home")
</li>
<li>
@Html.ActionLink("Contact","Contact", "Home")
</li>
</ul>