Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务器响应404:找不到本地主机/未定义_C#_Jquery_Ajax_Asp.net Mvc 4 - Fatal编程技术网

C# 服务器响应404:找不到本地主机/未定义

C# 服务器响应404:找不到本地主机/未定义,c#,jquery,ajax,asp.net-mvc-4,C#,Jquery,Ajax,Asp.net Mvc 4,我已经搔头好几天了。我在谷歌上搜索也没用。我试图用jquery.ajax从数据库中获取信息,但基于我每次发送的信息(比如一篇帖子和一个get),服务器以一个错误404:Not Found响应,并告诉我请求Localhost:1986/undefined,事实并非如此 我确信我所有的文件夹和文件的确切位置是重要的,所以我会尽可能多地包含,如果有必要,请随意要求更多 我的脚本是从另一个脚本复制粘贴和修改的,我必须将其发布到数据库中,这很好,所以为什么这一个没有让我感到困惑: function nex

我已经搔头好几天了。我在谷歌上搜索也没用。我试图用jquery.ajax从数据库中获取信息,但基于我每次发送的信息(比如一篇帖子和一个get),服务器以一个
错误404:Not Found
响应,并告诉我请求
Localhost:1986/undefined
,事实并非如此

我确信我所有的文件夹和文件的确切位置是重要的,所以我会尽可能多地包含,如果有必要,请随意要求更多

我的脚本是从另一个脚本复制粘贴和修改的,我必须将其发布到数据库中,这很好,所以为什么这一个没有让我感到困惑:

function nextSlide() {
    var articleLink = document.getElementsByTagName("a")[0];
    $.ajax({
        type: 'POST',
        url: "../SlideShow/NextArticle",
        data: {
            slideID: articleLink.getAttribute("id"),
        },
        success: function (result) {
            $(articleLink).id = result[0];
            document.getElementById("articleImage").setAttribute("src", result[1]);
            document.getElementById("articleTitle").innerHTML = result[2];
            document.getElementById("articleText").innerHTML = result[3];
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert("Status: " + textStatus); alert("Error: " + errorThrown);
        }
    });
}
这是我试图使用的
SlideShowController.cs
文件中的方法:

[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
public JsonResult NextArticle(string slideID)
{
    int ID = int.Parse(slideID);
    var articles = db.Slides.ToList();
    var currentArticle = db.Slides.First(s => s.SlideId == ID);
    int articlePosition = articles.IndexOf(currentArticle);
    articlePosition = (articlePosition + 1) >= articles.Count() ? 0 : articlePosition + 1;

    var nextArticle = articles.ElementAt(articlePosition);
    //nextArticle.Article.ArticleText.Substring(0, 50)+"..."
    string[] returnParameters = { 
                                    nextArticle.SlideId.ToString(),
                                    nextArticle.Image.ImageURL,
                                    nextArticle.Article.ArticleTitle,
                                    nextArticle.Article.ArticleText
                                };
    return Json(returnParameters);
}
SlideShowController.cs
文件位于根目录中名为
Controllers
的文件夹中。从
根目录/Views/SlideShow
文件夹中的
\u SlideShowPartial.cshtml
文件调用脚本。使用
@html.Partial()

以下是chrome控制台中出现的错误的屏幕截图:

下面是
Views
文件夹中Web.Config文件的内容:

<?xml version="1.0"?>

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor"     type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup,     System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,     PublicKeyToken=31BF3856AD364E35">
      <section name="host"     type="System.Web.WebPages.Razor.Configuration.HostSection,     System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,     PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages"     type="System.Web.WebPages.Razor.Configuration.RazorPagesSection,     System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,     PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc,     Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="TIAWebWorkConnect.Models.AppViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>

  <system.web>
    <httpHandlers>
      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>

    <!--
        Enabling request validation in view pages would cause validation to     occur
        after the input has already been processed by the controller. By default
        MVC performs request validation before a controller processes the input.
        To change this behavior apply the ValidateInputAttribute to a
        controller or action.
    -->
    <pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter,     System.Web.Mvc, Version=4.0.0.0, Culture=neutral,     PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0,     Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc,     Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral,     PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />

    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>


您向服务器发送的url肯定是错误的。请尝试完整的url,或从$.ajax查询中删除url

考虑将T4 MVC引入您的项目中。这将为您提供对MVC操作的强类型访问,并让您避免URL字符串,这看起来像您在这里遇到的问题


删除那些
。/SlideShow/NextArticle
中删除并检查。@HarveySpecter它仍然会抛出相同的错误,还有一个不错的用户名suitsHaha。谢谢最后,一个认识你的人。如果您可以尝试删除此项:
[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
并将此项:
[HttpPost]
@harveyspespecter也抛出相同错误,请发布完整的控制器代码、web.config,可能还会从浏览器中某个控制台的屏幕上显示此错误。