1

저는 ASP.NET MVC 2를 처음 사용합니다. 왜이 오류가 발생하는지 이해할 수 없습니다. 내가 올바르게 참조하고 있지 않은 뭔가가 누락되어 있습니까?'/'응용 프로그램의 서버 오류입니다. - 리소스를 찾을 수 없습니다.

내가 선택한 사람의 정보를 간단한 JQuery와 자동 완성 온라인 검색 텍스트 상자를 만들어 볼려고 내가에 표시 할 텍스트 상자에 검색 위해서는해야 할 일을

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Web.Mvc.Ajax; 
using DOC_Kools.Models; 

namespace DOC_Kools.Controllers 
{ 
    public class HomeController : Controller 
    { 
     private KOOLSEntities _dataModel = new KOOLSEntities(); 

     // 
     // GET: /Home/ 

     public ActionResult Index() 
     { 
      ViewData["Message"] = "Welcome to ASP.NET MVC!"; 

      return View(); 

     } 

     // 
     // GET: /Home/ 

     public ActionResult getAjaxResult(string q) 
     { 
      string searchResult = string.Empty; 

      var offenders = (from o in _dataModel.OffenderSet 
          where o.LastName.Contains(q) 
          orderby o.LastName 
          select o).Take(10); 

      foreach (Offender o in offenders) 
      { 
       searchResult += string.Format("{0}|r\n", o.LastName); 
      } 

      return Content(searchResult); 
     } 

     [AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Search(string searchTerm) 
     { 
      if (searchTerm == string.Empty) 
      { 
       return View(); 
      } 
      else 
      { 
       // if the search contains only one result return detials 
       // otherwise a list 
       var offenders = from o in _dataModel.OffenderSet 
           where o.LastName.Contains(searchTerm) 
           orderby o.LastName 
           select o; 

       if (offenders.Count() == 0) 
       { 
        return View("not found"); 
       } 

       if (offenders.Count() > 1) 
       { 
        return View("List", offenders); 
       } 
       else 
       { 
        return RedirectToAction("Details", 
         new { id = offenders.First().SPN }); 
       } 
      } 
     } 


     // 
     // GET: /Home/Details/5 

     public ActionResult Details(int id) 
     { 
      return View(); 
     } 

     // 
     // GET: /Home/Create 

     public ActionResult Create() 
     { 
      return View(); 
     } 

     // 
     // POST: /Home/Create 

     [AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Create(FormCollection collection) 
     { 
      try 
      { 
       // TODO: Add insert logic here 

       return RedirectToAction("Index"); 
      } 
      catch 
      { 
       return View(); 
      } 
     } 

     // 
     // GET: /Home/Edit/5 

     public ActionResult Edit(int id) 
     { 
      return View(); 
     } 

     // 
     // POST: /Home/Edit/5 

     [AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Edit(int id, FormCollection collection) 
     { 
      try 
      { 
       // TODO: Add update logic here 

       return RedirectToAction("Index"); 
      } 
      catch 
      { 
       return View(); 
      } 

     } 

     public ActionResult About() 
     { 
      return View(); 
     } 

    } 
} 

    using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Web.Routing; 

namespace DOC_Kools 
{ 
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801 

    public class MvcApplication : System.Web.HttpApplication 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute(
       "Default",            // Route name 
       "{controller}/{action}/{id}",       // URL with parameters 
       new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
      ); 

      routes.MapRoute(
       "OffenderSearch", 
       "Offenders/Search/{searchTerm}", 
       new 
       { 
        controller = "Home", 
        action = "Index", 
        searchTerm = "" 
       } 
         ); 
      routes.MapRoute(
       "OffenderAjaxSearch", 
       "Offenders/getAjaxResult/", 
       new { controller = "Home", action = "getAjaxResult" } 
       ); 


     } 

     protected void Application_Start() 
     { 
      AreaRegistration.RegisterAllAreas(); 

      RegisterRoutes(RouteTable.Routes); 
     } 
    } 
} 

    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<DOC_Kools.Models.Offender>" %> 

<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server"> 
    <script src="../../Scripts/jquery.autocomplete.js" type="text/javascript"></script> 
    <script src="../../Scripts/jquery-1.3.2.js" type="text/javascript"></script> 

<script type="text/javascript"> 

    $(document).ready(function() { 
     $("#searchTerm").autocomplete("/Offenders/getAjaxResult/"); 
    }); 

</script> 
    Home Page 

</asp:Content> 

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server"> 
    <h2><%= Html.Encode(ViewData["Message"]) %></h2> 


     <h2>Look for an offender</h2> 

    <form action="/Offenders/Search" method="post" id="searchForm"> 
     <input type="text" name="searchTerm" id="searchTerm" value="" size="10" maxlength="30" /> 
     <input type="submit" value="Search" /> 

    </form> 
    <br /> 



</asp:Content> 

색인 페이지? 자동 완성 기능이 제대로 작동하려면 어떻게해야합니까? 내가 autocomplete.js & jquery.js index.aspx보기에 추가했습니다

나는이 일을 얻을 수 있도록 모든 도움을 주시면 고맙겠습니다.

감사합니다.

+0

이 경로는 항상 첫 번째 경로에서 멈 춥니 다. 오류 메시지 세부 정보 '/'응용 프로그램의 서버 오류입니다. ------------------------------------------------- ------------------------------- 리소스를 찾을 수 없습니다. 설명 : HTTP 404. 찾고있는 리소스 (또는 해당 종속성 중 하나)가 제거되었거나 이름이 변경되었거나 일시적으로 사용할 수없는 리소스 일 수 있습니다. 다음 URL을 검토하고 철자가 올바른지 확인하십시오. 요청 된 URL :/위반자/검색 –

+0

ajax 호출에 URL을 올바르게 설정 했습니까? 당신의 행동을 가리키고 싶습니다 ... –

+0

이것은 MVC 2의 첫 번째 프로젝트이고 .NET에 익숙하지 않습니다. 나는 내가 위의 코드의 중간에 포함 된 경로 테이블을 올바르게 구성하지 않았다고 생각하고있다. 나는 Global 페이지의 Route 테이블과 다소 혼동 스럽다. –

답변

0

어쩌면 global.asax의 경로 순서일까요? 주문을 시도하고 반대 순서로 진행하십시오. 나는 처음부터 끝까지 정확한 경로를 찾으려고 노력하고 있다고 생각합니다. "{controller}/{action}/{id}"...

+0

Ok danfromisrael, 내가 순서를 뒤집 으면 1 차와 3 차지도가 나오고 앱을 돌린다. 이름을 입력하고 검색을 클릭하면 정보가없는 검색 페이지로 돌아가서 검색 할 다른 이름을 입력하라는 메시지가 나타납니다. –

관련 문제