2017-08-16 10 views
0

私はいくつかの助けが必要です。 私はVS 2015でMVC 5を使っています。私はプロジェクトでいくつかのルートを設定したいと思っています。まずMVC代替ルートカスタムルート

が、私は "デフォルト" のルートを持って、それはそれは次のようになります。 localhost/auth/loginまたは**はlocalhost /販売/ `

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

このルートは次のように、一般的なアクションのために使用されていますしかし、私はエリアがあります、その名前は会社です。そして、私はこのように、URLに名前の会社を取得したい:localhost/companyname/{controler}/...

だから、私は(CompanyAreaRegistration.csで)このようなものでした:

context.MapRoute(
    "Company_default", 
    "{company}/{controller}/{action}/{id}", 
    new { controller = "home", action = "Index", id = UrlParameter.Optional } 
); 

をしかし、デフォルトルートだけで動作を停止します( 404エラーをスローします)。そして、私はlocalhostの後に置くすべての名前は、それは会社エリアを呼び出しています。

誰かが私を助けることができますか?

私は次のようなことをすることができます:失敗した場合、会社ルートを試してみてください。

+0

あなたは、複数の会社名、またはテキストのみ」を持っていますか会社"? 「company/{controller}/{action}/{id}」の「会社」の中括弧を削除してみてください。 – yalpertem

答えて

0

ルートのテンプレートに会社名から中括弧を削除します。

context.MapRoute("company_default", 
       "company/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional } 
      ); 

はまた、あなたのコントローラクラスは、次のRouteAreaAttributeが必要:

[RouteArea("company", AreaPrefix = "company")] 
public class MyTestController : Controller 
{ 
    ... 
}