2009-06-01 13 views
0

私は私のASP.NET MVC C#アプリケーションでは、単純なルーティングシステムを設定しようとしていると、それは動作しません。ここでASP.Net MVCルート

/私のルート「http://localhost/Admin/」または「http://localhost/Admin/Home.mvc/Index

です

私はIndexとStartページを管理するHomeControllerを持っています。

インデックスページには、選択するクライアントのリスト(ボタンなど)があり、選択したクライアントの機能で「http://localhost/StoreV3Admin/ {client} /Home.mvc/Start」に行きたいと思います。

私はいくつかの研究をしましたが、ルーティングシステムの仕組みを完全に理解していません。

まず、可能でしょうか?

Thx。

答えて

0

私はMVCアプリケーションが適切に機能するためには、アプリケーションベースのルートに存在しなければならないと思います。 IISでVirtualDirectoryを作成し、それが役立つかどうかを確認してください。

なぜあなたのルートに「.mvc」がありますか? http://localhost/Admnin/Home/Indexという意味ではありませんか?

+0

誰かが私を票決したのはなぜなのかを私に知らせるなら、私がSOのメンバーとして、またプログラマーとしても改善できるのは分かります。ありがとう! –

+0

あなたはルートにいる必要はありません。 ASP.NETにすべての要求を送信するためにワイルドカードマッピングを使用しない場合は、IIS6で.mvcを使用する必要があります。 –

2

私はちょうど単純なmvcアプリケーションを投げて、私はあなたがうまく動作するように記述したものを得ることができました。私global.asax.csで

、RegisterRoutes方法で、私は次のルートを追加しました:私は

public ActionResult FooBar(string client) 
{ 
    return View(); 
} 

:私のコントローラで

routes.MapRoute(
    "Client", 
    "{client}/{controller}/{action}/{id}", 
    new { client = "Default", controller = "Home", action = "Index", id = "" } 
    ); 

を、私はこのようなメソッドを宣言する私はこのようなリンクを構築します:

<p><%= Html.ActionLink("Client1", "FooBar", "Home", new { client = "Client1"}, null) %></p> 
<p><%= Html.ActionLink("Client2", "FooBar", "Home", new { client = "Client2"}, null) %></p> 
<p><%= Html.ActionLink("Client3", "FooBar", "Home", new { client = "Client3"}, null) %></p> 

そして、結果のマークアップは次のようになります。

<p><a href="/Client1/Home/FooBar">Client1</a></p> 
    <p><a href="/Client2/Home/FooBar">Client2</a></p> 
    <p><a href="/Client3/Home/FooBar">Client3</a></p> 

これが役立ちます。

関連する問題