2016-09-09 3 views
1

저는 ASP.net의 근본을 이해하지 못합니다. 이걸로 뭔가 빠졌나요? 이 내 루트 :asp.net MVC 라우팅 오류 404

routes.MapRoute(
       name: "ChampionID", 
       url: "Champion/ChampionById/id", 
       defaults: new { controller = "Champion", action = "ChampionById", id = "5" } 
      ); 

이 내 CONTROLER입니다 : 당신이 나를 도울 수 있다면

public class ChampionController : Controller 
{ 
    public ActionResult ChampionById(string x) 
    { 
     ChampionId ch = new ChampionId(); 
     ch.Id = x; 
     return View(ch); 
    } 

내가

+1

브라우저에 입력하는 URL은 무엇입니까? – Rahul

+0

당신은'ChampionById'라는 이름의 뷰를 반환합니다, 그 이름을 가진 뷰가 있습니까? – Berkay

+0

'url : "Champion/ChampionById/{id}",' –

답변

1

이 routes.MapRoute를 잊어 감사 할 것입니다. 모든 경로를 연결하고 경로를 다음과 같은 속성으로 지정하십시오.

public class ChampionController : Controller 
{ 
    [Route("Champion/ChampionById/{id}")] 
    public ActionResult ChampionById(string id) 
    { 
     ChampionId ch = new ChampionId(); 
     ch.Id = id; 
     return View(ch); 
    } 
} 

또한 x는 id 여야합니다. 그럼 노선을 제거하십시오.지도를보세요. 그런 다음 ChampionById라는 해당 cshtml 파일이 있는지 확인하십시오. 나는 'ID'

다음

모든 요청 '챔피언이/ChampionById /'패턴이 매핑됩니다 업데이트 한 내용을

routes.MapRoute(
       name: "ChampionID", 
       url: "Champion/ChampionById/{id}", 
       defaults: new { controller = "Champion", action = "ChampionById", id = UrlParameter.Optional } 
      ); 

참고 :

+0

감사합니다.이 속성 덕택에 올바른 경로를 택할 수 있습니다. (테스트를 거쳤고 작동했습니다) –

1
는 아래와 같이 ActionResult에 맞게 아래로 경로를 변경

이 경로와 'Champion/ChampionById /'이후의 것은 'id 매개 변수'가됩니다. 경로에 선택 사항으로 표시되어 있으므로 null이 될 수도 있습니다. 그래서 그것을 더 잘 확인하십시오.

public class ChampionController : Controller 
{ 
    public ActionResult ChampionById(string id) 
    { 
     ChampionId ch = new ChampionId(); 

     if(!string.IsNullOrEmpty(id)) 
     { 
      ch.Id = id; 
      return View(ch); 
     } 
     //<TODO> : handle when your id parameter is null 
     return View(ch); 
    } 
+0

고맙습니다. 게시물을 편집 할 것입니다.) –

+0

@MaroineAbdellah 당신을 도왔습니다. 그것이 당신을 도운다면 대답으로 받아 들여주십시오. 이전 질문에 대한 답변을 수락하지 않은 것뿐입니다. 이것은 사람들이 미래의 질문에 대해 당신에게 대답하지 않게 할 것입니다. :) 그래서 그 정신을 유지하고 대답을 받아주십시오. 감사합니다 =) – Shiham

1

경로를 편집하십시오.

routes.MapRoute(
       name: "ChampionID", 
       url: "Champion/ChampionById/{x}", 
       defaults: new { controller = "Champion", action = "ChampionById", x = UrlParameter.Optional } 
      ); 
+0

=이 작품에 감사드립니다. –