4

エリアを使用して、ASP.NETMVC3で記述されたAPIをAttributeRoutingでバージョン管理してルートを定義しています。

現在、APIの最初のバージョンである「v1」領域があります。v2に到達したら、v1をコピーして変更を加えます。

Webサイトに同じバージョンを使用したいのですが、ルートに/v1を含めたくありません。

私の質問は、URLでエリアを非表示にして、電話をかけるにはどうすればよいかということです。

mywebsite.com/Users/1 

それ以外の

mywebsite.com/v1/Users/1

これが私のコントローラーにあるものです

    [RouteArea("/")]
    public class HomeController : Controller
    {
        //
        // GET: /v1/Home/
        [GET("")]
        public ActionResult Index()
        {
            return View();
        }

    }

mywebsite.com/にアクセスしようとすると次のようになります

エラー

前もって感謝します!

4

1 に答える 1

4

これを行う:

[RouteArea("AreaName", AreaUrl = "")]

デフォルトでは、エリアにはエリア名がプレフィックスとして付けられます。AreaUrl プロパティを使用すると、それをオーバーライドできます。ここでウィキを更新します: https://github.com/mccalltd/AttributeRouting/wiki/Areas

混乱させて申し訳ありません!

また、AR で定義された URL の先頭または末尾にスラッシュを追加しないでください。スタック トレース ダンプは、MVC が「/」という名前のフォルダーでビューを探していることを強調しています。空の URL が必要な場合は、"" を使用してください。

于 2012-04-18T22:39:39.190 に答える