ASP.NET View不起作用

时间:2017-04-10 20:22:30

标签: asp.net

我有一个对我来说很奇怪的问题。我正在制作MVC项目,当我在我的网站上点击“联系”时,它没有将我重定向到“联系”页面,它显示以下消息: error 错误文本:说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。

后面的代码是:

<li>
<a href="~/Views/Home/Contact.cshtml">Contact</a>
</li>

如果我进入文件夹View并在Firefox Contact.cshtml中直接打开它会正常打开... PLZ帮助,因为我是noob ..

2 个答案:

答案 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>