我有一个ASP.NET MVC 5.2.3网站。我一直在尝试在右下角添加一个站点地图的链接。该链接在_Layout.cshtml中使用:
实现<p class="notep right">@Html.ActionLink("Site Map", "SiteMap", "Home")</p>
我看到网页在我的本地计算机上显示得很漂亮。但当我把它放在服务器上时,我得到了:
描述: HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。
请求的网址: /主页/网站地图
我最初在本地计算机上遇到此问题。但我在那里通过添加代码块来修复它:
public ActionResult SiteMap()
{
return View();
}
到HomeController。
我可以确认此更改已成功上传到网站。
网站上的所有其他操作链接都可以正常运行。在我的本地机器上也是如此。那么生产环境会有什么不同会妨碍它在那里正常工作呢?
修改
我的RouteConfig文件是:
using System.Web.Mvc;
using System.Web.Routing;
namespace MyNamespace
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] {"MyNamespace.Controllers"}
);
}
}
}
修改
我的csproj文件中的项目类型是:
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
我当然在文档根目录中看到了bin和obj目录,以及其他可能的构建工件。