2016-09-09 22 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である必要があります。その後、routes.MapRouteを削除してください。次に、championByIdと呼ばれる対応するcshtmlファイルがあることを確認します。

+0

この属性に感謝します。あなたは正しいルートを取るように強制します(これはテストされ、機能します) –

1
あなたは以下のようなのActionResult合わせて以下に、あなたのルートを変更し

:私は「ID」と

を更新したもの

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

注意をここにチャンピオン/ ChampionById/'パターンを持つすべての要求がマッピングされます。このルートに 'Champion/ChampionById /'の後のものは 'idパラメータ'になります。それはルート上でオプションとしてマークされているので、これもヌルになる可能性があります。だからそれをよく調べる。

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あなたを助けてくれてうれしい。それがあなたを助けてくれたら、答えとして受け入れてください。あなたの以前の質問を見て、あなたは答えを受け入れていません。これは、人々が将来の質問のためにあなたに答えないようになります:) SOの精神を維持し、答えを受け入れてください。ありがとう=) – Shiham

1

あなたのルートを編集します。

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

この作品に感謝します=) –

関連する問題