2017-03-09 9 views
-1

私のコントローラーのGiftCardsというアクションが実際のURL /表示ページの名前を上書きするという問題が発生しました。ASP.NETコアの上書きURL

public IActionResult SomeStupidName() 
{ 
     return ("Checkout"); 
} 

私のURLは、私はそれが

www.mywebsite.com/GiftCards/Checkout 

になりたいしながら、いくつかの更なる詳細は、このフォームが有している場合、提出フォームで実行されていることだろう

www.mywebsite.com/GiftCards/SomeStupidName 

に変身します

asp-action="SomeStupidName" 
+1

!メソッドは 'SomeStupidName'という名前になっていますので、もちろんデフォルトで' ../ GiftCards/SomeStupdName'が作成されます。変更する場合は、特定のルート定義を作成するか、属性ルーティングを使用します - [ASP.NETコアのルーティングを構築する5つの方法](https://stormpath.com/blog/routing-in-asp-net-core) –

答えて

1

ヨーあなたはAsp.Netコアに"属性ルーティング"を使用できます。あなたのコントローラの正しいビューを返します。このコードを試してください!!

[Route("GiftCards/Checkout")] 
public IActionResult SomeStupidName() 
{ 
    return View("Checkout"); 
} 

属性ルーティングは、アクションをルートテンプレートに直接マップする属性セットです。 "()""[Route(" ")]"の属性の中の書き換えURLに言及することができます。

Asp.netコアにをルーティング 属性に関する

詳細:​​

+0

これらのルーティング属性の例を追加してください。 – juunas

+0

@RajneeshMenothの回答を編集しています。回答を編集中に "Edit queue was full"というメッセージが表示されています。 "[Route(" GiftCards/Checkout ")]" – Sumit

+0

@Sumitの情報に感謝します。 – RajeeshMenoth

2

あなたはwww.mywebsite.com/GiftCards/SomeStupidNameSomeStupidNameを意味することを理解する必要がありますが、そうコントローラGiftCardsのアクションですwww.mywebsite.com/GiftCards/CheckoutCheckoutは、コントローラGiftCardsの行動であることを意味しますが、あなたのコード内でViewGiftCardsactionから別のactionにリダイレクトしています。アクション名Checkoutがあるとします。

public IActionResult Checkout() 
{ 
    return View("Checkout"); 
} 

私は今のように、私は他のアクションからアクションへリダイレクトすることができwww.mywebsite.com/GiftCards/Checkoutを入力するときには、ビューCheckoutを返します。何もあなたのurl_を書い_overではありません

public IActionResult SomeStupidName() 
{ 
    return RedirectToAction("Checkout"); 
} 
関連する問題