2016-12-06 23 views
0

コントローラのカスタムルートを作成しましたが、urlでパラメータを渡すと、コントローラクラスの変数を取得できません。出力は空です。MVC 5でパラメータを取得できません

ルート

routes.MapRoute(
      "Employee", "Employee/{name}", new 
      {controller = "Employee", action = "Search", name = UrlParameter.Optional} 
); 

クラスEmployeeController

public ActionResult Search(string name) 
    { 
     var input = Server.HtmlEncode(name); 
     return Content(input); 
    } 
+0

このメソッドの呼び出し方法を教えてください。 – Amy

+0

'rootURL/Employee/george'(' 'george''を出力)を呼び出すときにうまく動作します – trashr0x

+1

あなたのファイルに記述されているすべてのルートを提供できますか? –

答えて

3

は、まず、カスタムルートが前にデフォルトの1を来る必要があるので、それは最初に一致した:あなた以来

routes.MapRoute(
    name: "Employee", 
    url: "Employee/{name}", 
    defaults: new { controller = "Employee", action = "Search", name = UrlParameter.Optional } 
); 

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 

を経路URLをに定義しました、およびEmployeeControllerpublic ActionResult Search(string name)アクションシグネチャを持つ、あなたは次の形式を使用して一致させることができる必要があります:

  • /Employee/George
  • /Employee?name=George

両方"George"を返します。

+0

私は読んで、ありがとう、今すぐ動作します。 –

+0

ようこそ。これがあなたの質問に答えた場合は、答えの横にあるチェックマークをクリックして、それを合格とマークすることができます。 – trashr0x

関連する問題