1

Je suis nouveau à ASP.NET MVC 2. Je ne comprends pas pourquoi je reçois cette erreur. Y at-il quelque chose qui manque que je ne me réfère pas correctement.Erreur de serveur dans l'application '/'. - La ressource ne peut pas être trouvée

Je suis en train de créer un simple jquery autocomplete zone de texte de recherche en ligne et consulter les détails de la personne que je sélectionne

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> 

Que dois-je faire pour que la recherche de zone de texte à afficher sur la sommaire? Que dois-je faire d'autre pour que la saisie semi-automatique fonctionne correctement. J'ai l'autocomplete.js & jquery.js ajouté à la vue index.aspx

Toute aide sera appréciée afin que je puisse obtenir ce travail.

Merci!

+0

Ceci est la Message d'erreur Erreur de serveur dans l'application '/'. ------------------------------------------------- ------------------------------- La ressource est introuvable. Description: HTTP 404. La ressource que vous recherchez (ou l'une de ses dépendances) a pu être supprimée, son nom a été modifié ou elle est temporairement indisponible. Veuillez vérifier l'URL suivante et assurez-vous qu'elle est épelée correctement. URL demandée:/Délinquants/Recherche –

+0

Avez-vous défini correctement votre URL dans vos appels ajax? Je veux dire à votre action ... –

+0

Je ne suis pas sûr que ce soit mon premier projet avec MVC 2, et pas vraiment familier avec .NET. Je pense que mes tables de routage ne sont pas configurées correctement, ce que j'ai inclus au milieu du code ci-dessus. Je suis un peu confus avec les tables Route dans la page Global. –

Répondre

0

peut-être que c'est l'ordre des routes dans le global.asax? essayez d'annuler la commande. Je pense qu'il essaie de trouver les bonnes routes du premier au dernier et dans votre cas il s'arrête toujours à la première route qui est: "{controller}/{action}/{id}" ...

+0

Ok danfromisrael, quand j'ai inversé l'ordre le 1er et le 3ème itinéraire de carte et je cours l'application. Une fois que je saisis un nom et que je clique sur la recherche, il revient à la page de recherche sans information et me demande d'entrer un autre nom à rechercher. –