C# 在使用敲除JS的MVC项目中找不到控制器路径

C# 在使用敲除JS的MVC项目中找不到控制器路径,c#,asp.net-mvc,knockout.js,C#,Asp.net Mvc,Knockout.js,我正在处理一个MVC web应用程序,其中一个页面使用javascript文件作为数据 I have the TournamentInfo.js file in a folder called "Scripts" I have the TournamentController.cs file in a folder called "Controllers" I have the TourneyInfo.cshtml file in a folder called "Tourneys" that

我正在处理一个MVC web应用程序,其中一个页面使用javascript文件作为数据

I have the TournamentInfo.js file in a folder called "Scripts"
I have the TournamentController.cs file in a folder called "Controllers"
I have the TourneyInfo.cshtml file in a folder called "Tourneys" that is in a folder called "Views"
当我尝试运行项目时,出现以下错误:

[Htpp Exception] The controller for path '/Tourneys/TourneyInfo' was not found or does not implement IController
我在我的项目中有另一个使用相同格式(javascript文件、控制器文件和视图文件)设置的页面,该页面可以正常工作。我找不到会导致我收到的错误的差异

关于我应该寻找什么来解决我的比赛页面上的问题,有什么建议吗

*如果您想查看每个文件的代码,请告诉我。我不确定它是否相关,因为我的另一个页面使用了这种格式

Javscript文件:

function tournamentpageModel() {
    var self = this;
    self.Tournaments = ko.observableArray([]);
}

function TourneyInfo(_name, _date, _location, _pattern, _avg, _finish, _ttlentries) {
    var self = this;

    self.Name = ko.observable(_name);
    self.Date = ko.observable(_date);
    self.Loc = ko.observable(_location);
    self.Pattern = ko.observable(_pattern);
    self.Avg = ko.observable(_avg);
    self.Finish = ko.observable(_finish);
    self.Entries = ko.observable(_ttlentries);
}

var viewTModel = new tournamentpageModel();
viewTModel.Tournaments.push(new TourneyInfo("South Regional", "May 9-10, 2014", "Rocky Mount, NC", "Chameleon (41ft)", "167.75", "70th", "75"));
viewTModel.Tournaments.push(new TourneyInfo("South Regional", "March 7-9, 2014", "Pensacola, FL", "Badger (52ft)", "215.75", "17th", ""));
viewTModel.Tournaments.push(new TourneyInfo("South Regional", "", "Pensacola, FL", "", "", "", ""));
viewTModel.Tournaments.push(new TourneyInfo("South Regional", "", "Canton, GA", "Viper (39ft)", "215.75", "14th", ""));


$(function () {

    ko.applyBindings(viewTModel);
})
控制器:

using PracticeApp.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace PracticeApp.Controllers
{
    public class TournamentController : Controller
    {
        public ActionResult TourneyInfo()
        {
            return View();
        }
    }
}
视图:


@{
ViewBag.Title=“锦标赛”;
}
@视图包。标题
锦标赛名称日期位置油模式符合AVG最终总参赛项目
共享布局…包含导航菜单的操作链接。除了锦标赛链接,它们都可以工作。它们在重载中使用相同的格式(“超链接文本”、“文件名”、“文件夹名”):


Atlas网页
@style.Render(“~/Content/css”)
@Scripts.Render(“~/bundles/modernizer”)
*左撇子打保龄球的方法*
  • @ActionLink(“主页”、“索引”、“主页”)
  • @ActionLink(“团队”、“关于”、“关于”)
  • @ActionLink(“当前队列”、“当前列表”、“当前”)
  • @ActionLink(“退役设备”、“退役列表”、“退役”)
  • @ActionLink(“锦标赛”、“锦标赛信息”、“锦标赛”)
  • @ActionLink(“保龄球视频”、“视频”、“视频”)
  • @ActionLink(“赞助商”、“赞助商”、“赞助商”)
@渲染部分(“特色”,必填项:false) @RenderBody() &抄袭@DateTime.Now.Year:Southpaw Web解决方案和交易™-电邮:jmilam90@gmail.com

神的程式化绘画,阿特拉斯,由shutterstock提供

@Scripts.Render(“~/bundles/jquery”) @RenderSection(“脚本”,必需:false)
惯例是路径使用控制器名称的前缀,因此您应该导航到:

/Tournament/TourneyInfo/
而不是:

/Tourneys/TourneyInfo/
您可能会发现在报告故障之前尝试了哪些路由非常有用:


编辑:另请参见下面的评论。另一个问题是视图的位置-默认情况下,视图需要位于
views\\
文件夹中,例如
views\tourbank\

TourneyInfo视图的路径应该类似于/tourbank。一、 e您正在引用视图,而不是控制器。MVC路由将无法协调此请求。看起来您正在尝试调用Tourneys控制器上的TourneyInfo操作(应该是Tourney控制器?)。查看控制器和调用控制器的代码会很有帮助。我将发布文件的代码。这些是我的操作链接。除了锦标赛,他们都在工作<代码>
  • @Html.ActionLink(“主页”、“索引”、“主页”)
  • @Html.ActionLink(“团队”、“关于”、“关于”)
  • @Html.ActionLink(“当前队列”、“当前列表”、“当前”)
  • @Html.ActionLink(“退役设备”、“退役列表”、“退役”)
  • @Html.ActionLink(“锦标赛”、“锦标赛信息”、“锦标赛”)
  • @Html.ActionLink(“保龄球视频”、“视频”、“视频”)
  • @Html.ActionLink(“赞助商”、“赞助商”、“赞助商”)
  • 将导航更改为控制器也无法解决问题。我在上一条评论中用完了字符,但每个链接都会检查与列出的第三个字符串相等的文件夹,然后是与列出的第二个字符串匹配的文件名。第一个字符串是显示在您的控制器呼叫页面的导航菜单中的文本ed'TournamentController',而不是'TourneysController',因此ActionLink应该反映:@Html.ActionLink(“Tournaments”,“TourneyInfo”,“Tournament”)我的所有操作链接都会查找文件所在的文件夹名,然后查找该文件夹中的文件名。除了tournaments链接之外,它们都可以工作。我确实尝试过您的建议,查找“Tournament”甚至“TournamentController”“只是想确定一下,但这也没用。您的‘TourneyInfo’视图是否位于‘视图’下面的‘Tournament’文件夹中?”?默认情况下,视图文件夹也应与控制器名称相对应——即。
    /Tournament/TourneyInfo/
    
    /Tourneys/TourneyInfo/