2009-08-17 19 views
1

でdirのリストを与える:正確this質問ごとなどASP.NET MVCルーティングは、私は次のルート持っているルート

// Submission/* 
routes.MapRoute(
    "Submission", 
    "Submission/{form}", 
    new { controller = "Submission", action = "Handle", form = "" }); 

// /<some-page> 
routes.MapRoute(
    "Pages", 
    "{page}", 
    new { controller = "Main", action = "Page", page = "Index" }); 

最初のルート要求を。第2は、静的なコンテンツページをまとめてルーティングします。などのインスタンスはlocalhost /ヘルプは、localhost /連絡先、単にページ名に応じたビューを返しメインコントローラへのすべてのルートの場合:少なくともテスト中に、

public class MainController : Controller 
{ 
    public ActionResult Page() 
    { 
     var page = (string)RouteData.Values["page"]; 
     return View(page); 
    } 
} 

問題があり、ローカルホスト/はディレクトリのリストを与えますMain/Index.aspxにルーティングする代わりに。実際の問題は、URLがWeb.sitemapファイルで定義されているものと一致しないため、SiteMapメニューが表示されないことです。しかし、localhost/Indexは私に正しいビューを与えてくれます。

これはMono/XSPで期待どおりに動作します。

答えて

0

私はついにそれを理解しました。間違っている2つのことが(潜在的に)あった。一つは、プロジェクトにはMVCプロジェクトタイプのGUIDが必要です。 thisのアイデアをチェックしてください。投稿はトピックではありません。 2つ目は、Visual Studio 2008には、更新されたASP.NET開発サーバー用のSP1が必要です。 SP1以前のバージョンではDefault.aspxページを使用せずにGlobal.asaxを起動しません。

1

Visual Studio Dev Serverを使用してテストする場合は、動作するはずです。私はちょうどそれを今試しました。

IISでもないのは「localhost /」とは、「localhostの/インデックスは、」あなたはwildcard mapping

を有効にしない限り、動作するはずですので、それは私のために動作します。あなたはたぶんポストから明らかではない何かを見逃しているでしょう。

ところで、あなたの行動を改善することができます。

public ActionResult Page(string page) 
{ 
    return View(page); 
} 

EDIT:Hereは私のサンプルプロジェクトです。

+0

チップの少なくともアップ。私は行方不明のものは考えられません...モノは大丈夫そうです。あなたは私がローカルでテストできるようにあなたのプロジェクトを添付できますか? – xanadont

+0

私は答えを更新しました。 –

+0

Hrm ...アーカイブが正しく解凍されていません。 – xanadont

関連する問題