2010-12-05 6 views
0

私はASP.NET MVCアプリケーションを開発中です。私のマスターページには、別のアクションに提出する必要があるフォームがあります。以下は、関連するコードです:aspxページのアクションへのパスを指定するMVC

<form id="form1" action="/Stock/PerformSearch" method="post" runat="server"> 
//some other stuff   
</form> 

あなたが見ることができるように、私は「株式」コントローラに「PerformSearch」アクションに行きたいフォームを送信するとき。これは、私のローカルマシンのホスティングで正常に動作します。しかし、サーバー上にサイトを公開しようとすると、MVCはこのパスをもう認識しません。私の質問は、ローカルとライブの両方で動作するように、aspxページのアクションへのパスを指定する方法です。私は "Html.BeginFormの使用"を使用することができ、問題を解決することができることを知っていますが、他の理由でそれを使用したくないし、フォームタグ。ところで

「http://cse454db.cs.washington.edu/BestBet/Stock/PerformSearch」へのパスを変更すると、指定されたパスが正確なパスであるため、それがサーバー上で実行するようになりますアプリケーションがどこに生きるか(仮想ディレクトリを含む)が、私はローカルまたはライブを実行するたびに前後のパスを変更しなければならないので、これは完璧な解決策ではないことを知っています。また、javascriptファイルのアクションへのパスを指定する際にも同じ問題があります。私はそれのための簡単な解決策がなければならないことを知っているが、私は探していたと何かを見つけることができなかったので、どんな助けも大いに感謝されます。ありがとう、たくさん、

答えて

1

あなたはASP.NETとASP.NET MVCを混乱させると思います。 HTMLヘルパーを使用し、runat="server"タグをASP.NET MVCビューに配置することは絶対に避けてください。したがって、フォームは次のようになります。

<% using (Html.BeginForm("PerformSearch", "Stock")) { %> 
    //some other stuff 
<% } %> 

適切なフォームタグが生成されます。

+0

JavaScriptファイルのパスはどうですか?どのように私はパスを指定するのですか? –

+0

これは、どのパスについて話しているのか、どのようにJavaScriptで処理しているのかによって異なります。 –

+0

私はajax呼び出しについて言いますが、あなたが "url:"フィールドに入れたパスは –