2011-12-15 3 views
0

vs2010で空のmvcプロジェクトを作成し、ビュー(MessageView)、コントローラ、モデルを作成しました。私は自分のアプリケーションを構築するいくつかの理由(スタートページとしての私のビューを設定した)の場合は、404エラーを投げているようだし、URLに以下を追加:Visual Studio 2010 //.NET MVCアプリケーション - 404空白プロジェクトのエラー

http://localhost/MvcApplication1/**Account/LogOn?ReturnUrl=%2fMvcApplication1%2fViews%2fMessageView.aspx** 

は、私ができる私のweb.configファイルを調査しました次のコードを参照してください:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
</authentication> 

これは自動的に追加されました....私は空のMVCプロジェクトをクリックした理由を完全には分かりません。誰もが解決しよう

EDIT

....これを固定クリーンな方法を知っている:問題は、私は、.NETによってそこに置かビューサブディレクトリにMessageViewを移動していることです。私はそれを見つけて表示するために、プロジェクトディレクトリのルートにビューを配置しなければなりませんでした。上記のコードをweb.configファイルから削除する必要もありました。

どのようにあなたはそれがサブディレクトリ

+0

URLにアクセスする正しい方法を見つけていただきありがとうございますが、FormsAuthenticationを無効にしたり修正したりしなければ動作しません。設定を削除または修正したという事実を追加せずにこれを解決してマークすると、不正確な解決策が表示されます。これには2つの部分があります。それに応じて投稿を編集してください。 – ChrisBint

答えて

1

内に置かれたときだけデフォルト値からウェブタブに現在のページをあなたのプロジェクトのプロパティの[スタートアクションの値を変更するには、この作業を取得することができます何かに。

+0

+1。私たちは通常、「ページを開かないでください」と設定します。ただし、特定のページを使用できます。しかし、ページはVIEWファイルではなくCONTROLLERとACTIONの名前と一致するROUTEにマップする必要があります。 – danludwig

+0

@olivehour:ええと、*現在のページ*はウェブページの時代の遺跡です:) – Jan

+0

OK完了してもまだ動作しません。エラー404リソースを見つける.... – user559142

1

ビューにアクセスしたくない場合は、コントローラにアクセスする必要があります。これはバグではなく、MVCの仕組みです。あなたのURLは次のようになります。

http://localhost/MvcApplication1/ControllerName

ない

http://localhost/MvcApplication1/Views/MessageView.aspx

更新

ここで何が起こっているかです。あなたは空のプロジェクトから始めました。これは、あなたがアカウントコントローラを持っていないことを意味します。

MVCでは、Webサーバーが/ Views(/Views/Whatever.aspx)にRAWビューファイルを公開することを許可していません。アクセスしようとすると、403の禁止ヘッダーが返されます。

ASP.NETは、AccountControllerのLogOnアクションメソッドである/ Account/LogOnにリダイレクトすることで、403を処理します。あなたは空のプロジェクトを持って、そして何のAccountControllerがないので、これはちょうどあなたの解決しようと読んで、あなたの404

原因となっている別のアップデート

です。再度、Views、Controllers、またはModelsフォルダ内のファイルにアクセスすることはできません。これらはMVCで使用される特別なフォルダです。

サブディレクトリのビューにアクセスする場合は、/ contentまたは/ scriptsのようなサブディレクトリを作成します。 MVCはこれらを通常のフォルダとして扱い、必要なものにアクセスできます。したがって、このようなフォルダにファイルを置くことができます:

/サブディレクトリAbc/MessageView.aspx。

URL http://localhost/MvcApplication1/SubdirectoryAbc/MessageView.aspxを使用してこのファイルにアクセスできます。

ただし、コントローラアクションメソッドではビューを使用できません。

+0

これは問題ではありません。開始ページの設定は何もしません。私はまだエラー404を受け取ります。開始ページとしてビューを設定することは、たとえMVCが動作していなくても有効です。 – user559142

-1

このセクション全体を削除できます。

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
</authentication> 

これは、デフォルトでMVCでサイトに入力された認証を無効にします。

+0

彼のURLのReturnUrlパラメータを見てください。コントローラではなくview.aspxにアクセスしようとしています。 – danludwig

+0

これは、受信しているエラー404を削除しません - 「リソースが見つかりません」 – user559142

+0

@ user559142。私の答えはFormsAuthenticationを削除します。FormsAuthenticationは、ここでの追加の回答にかかわらず、あなたが持っている最大の問題です。また、他の人に示唆されているように、コントローラによってもアクセスする必要があります。これを削除しないと、_any_ urlにアクセスしようとすると機能しません。 – ChrisBint

0

問題は、MVCがルーティングのためにファイル構造の規則を使用することです。ビューを別のフォルダに移動する場合は、フォルダ構造に適切にマップするようにルーティングコードをカスタマイズする必要があります。正直なところ、私はそれがあなたの時間の価値があるとは思わない。