2016-10-24 12 views
0

私は、値 'SmallBuildingCompany'を入力できるエンドユーザーにメソッドを提供し、この値を使用して情報ビューにリダイレクトするカスタムURLを作成することをお勧めします。たとえば、www.app.com/SmallBuildingCompanyなどです。誰かがこれを助けるためにいくつかの情報を私に指摘できますか?私はRouteConfig以内にこれを追加asp、net mvcでユーザ定義のURLアクションを利用するには?

は、これまで161024 私の試みを編集しました。

 RouteTable.Routes.MapRoute(
     "Organization", 
     "O/{uniqueCompanyName}", 
     new { controller = "Organization", action = "Info" } 

となり、組織コントローラの下に新しいコントローラ方式とビューが追加されました。

public async Task<ActionResult> Info(string uniqueCompanyName) 
{ 
    var Org = db.Organizations.Where(u => u.uniqueCompanyName == uniqueCompanyName).FirstOrDefault(); 

    Organization organization = await db.Organizations.FindAsync(Org.OrgId); 

    return View("Info"); 
} 
+0

? –

答えて

0

あなたはすべての情報ビューを表示するために使用されるアクションのためのパラメータとしてURLのSmallBuildingCompany一部を使用することによって、これを達成することができます。このルートは、おそらくデフォルトルートを破損する

protected void Application_Start() { 
    // Sample URL: /SmallBuildingCompany 
    RouteTable.Routes.MapRoute(
     "CompanyInfo", 
     "{uniqueCompanyName}", 
     new { controller = "CompanyInfo", action = "Index" } 
    ); 
} 

注意({controller}/{action}/{id}:Global.asax.csでルートパラメータとして会社名を抽出し、CompanyInfoControllerのindexアクションにそれを渡すために設定し

そして、CompanyInfoController indexアクションは、データベースからに関する情報を取得するためにuniqueCompanyNameパラメータを使用することができます

protected void Application_Start() { 
     // Sample URL: Info/SmallBuildingCompany 
     RouteTable.Routes.MapRoute(
      "CompanyInfo", 
      "Info/{uniqueCompanyName}", 
      new { controller = "CompanyInfo", action = "Index" } 
     ); 
    } 

:)ので、多分あなたはあなたの「情報」のルートを接頭辞にしたいです。あなたは試してみました何

public ActionResult Index(string uniqueCompanyName) { 
    var company = dbContext.Companies.Single(c => c.UniqueName == uniqueCompanyName); 
    var infoViewModel = new CompanyInfoViewModel { 
     UniqueName = company.UniqueName 
    } 
    return View("Index", infoViewModel); 
} 

ASP.NET Routing

+0

私は思ったことを追加しましたが、ページが見つからないと表示されています。私の目標は、この重要な組織のホームページに匿名ユーザーがアクセスできるようにすることです。何か案は? – DudeThatCodes

+0

http://nuget.org/packages/routedebuggerを使用して、どのルートにヒットするかを確認できます。 –

関連する問題