2011-08-04 10 views
0

私は、既存のIISサイトにアプリケーションとしてインストールしたばかりのMVCプロジェクトを持っています。テストすると、ルーティングはlocalhostのルートで実行されているためうまく動作しますが、アプリケーションのルーティングとしてそれを展開すると、すべてのメソッドをhttp://foo.com/bar/searchの代わりにhttp://foo.com/searchにルーティングしようとしています。私はこれがかなり単純なものでなければならないことを知っている、私はちょうど正しい言葉を思いつくように見えることはできませんグーグルが好きだ。
FWIW、私は次のことをやってみましたが、それは403エラーを投げ始めた:URLが "{コントローラ}/{アクション}/{ID}" の代わりに "サイト/ ..." であったもともとことIISのアプリケーションとしてのASP.NET MVCサイトの問題

routes.MapRoute(
      "Default", // Route name 
      "bar/{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

を。

アイデア?

+1

あなたは 'だけでなくの'「〜/」 'Url.Content(「〜/」)を呼び出していることを確認てきました'あなたの出入りの呼び出しで? –

+0

それはそれをしました。私はMVCにはかなり慣れていて、Url.Contentの代わりにまっすぐなURLを入れていました。ありがとう! –

+0

うれしい私は助けることができます。私は回答として私のコメントを再投稿しましたので、あなたが好きな答えとしてチェックすることができます(もちろん助けがあれば) –

答えて

1

get/postの呼び出しでは"~/"の代わりにUrl.Content("~/")を呼び出していることを確認してください。

私はこの前にいくつかのmvcプロジェクトでこの問題を抱えていました。その前に起こっていたことがわかりました。

幸運を祈る!

(それは答えとして私のコメントを投稿しないなら、私はこれを削除します)

+0

私はそれで大丈夫です、私はあなたが答えを書くのを待っていたので、それを解決策としてマークすることができました。 –

0

私はいくつかのモジュールを他のサブフォルダ構造に分割しようとしていると思います。エリアを使ってみましたか?

既存のURLを使用して再ルーティングするのは簡単ではありません。

代わりにマウスを使用するVS 2010プロジェクトを右クリックし、領域を追加してください。エリアの下にあるすべてのコントローラとビューは、サブフォルダに分類されます。たとえば、私は同じようなURLを持っていますhttp://localhost:4000/admin/manageuser/add

+0

親サイトとmvcアプリケーションは2つの異なるプロジェクトにあります。それらは本番環境でのみ一緒に来ます。私はこれを将来見ていきます。私の記事へのコメントでEvan Laymanが言ったように、私はUrl.Contentの代わりにまっすぐなURLを使っていました。 –