2017-11-16 14 views
0
public IActionResult Info(int id) 
      { 
       return Content(id + ""); 
      } 

私がJan/Info/2を入力すると、ブラウザは値0を返します。これはなぜですか、どうすれば修正できますか?私はMVCコア1.1を使用しています。何らかの理由でUrlParameter.OptionalがVisual Studioに存在しないため、アクセスできません。入力がURLのintパラメータである場合、ブラウザがintのデフォルト値を返すのを防ぐにはどうすればよいですか?

app.UseMvc(routes => 
      { 
       routes.MapRoute(
        name: "Naam", 
        template: "{controller=Jan}/{action}/{voornaam}"); 
       routes.MapRoute(
        name: "Info", 
        template: "{controller=Jan}/{action}/{id}"); 

      } 


public IActionResult Naam(string voornaam) 
     { 

      return Content(voornaam); 
     } 

答えて

0

正確なパターンに一致する別の経路登録がすでにあるためです。その登録に従って、値を読み取り、voornaamパラメータに割り当てます。

だから、これはあなたのアクションメソッドのためのユニークな名前を持っているので、あなたはそれぞれのアクションメソッドのカスタムルートを指定する必要はありません

public IActionResult Info(int voornaam) 
{ 
    return Content(voornaam + ""); 
} 

を動作するはずです。デフォルトルート登録はうまく動作します。あなたがyourSite/jan/info/123にアクセスすると

app.UseMvc(routes => 
{ 
    routes.MapRoute(
     name: "defaultroutes", 
     template: "{controller}/{action=Index}/{id?}", 
     defaults: new { controller = "jan" }); 
}); 

は、コントローラと仮定すると、この

public class JanController : Controller 
{ 
    public IActionResult Info(int id) 
    { 
     return Content(id + " : id"); 
    } 
    public IActionResult Naam(string voornaam) 
    { 
     return Content(voornaam+ ": param value"); 
    } 
} 

のように見えるInfo方法はそれを処理すると、あなたがyourSite/jan/Naam?voornaam=shyjuを要求したときに、ナーム方法はそれを処理します。あなたの代わりに、明示的なクエリ文字列のyourSite/jan/Naam/shyjuのようなURL構造をサポートしたい場合は

、あなたは今、あなたはyourSite/jan/Naam/shyju要求したとき

public class JanController : Controller 
{ 
    public IActionResult Info(int id) 
    { 
     return Content(id + " id"); 
    } 
    [Route("[controller]/[action]/{voornaam}")] 
    public IActionResult Naam(string voornaam) 
    { 
     return Content(voornaam + " : param value"); 
    } 
} 

をルーティング属性を持つそのアクションメソッド上のルートパターンを指定することができ、ナーム方法は次のようになります文字列 "shyju"はvoornaamのパラメータで利用できるようになります

+0

私は本当に経路制約を理解することができません。この問題に適用できるものを作ってください。 –

+0

JanControllerで文字列paramを受け入れる別のアクションメソッドがありますか? – Shyju

+0

はい私は編集した –

関連する問題