2011-10-19 20 views
0

MVC Webアプリケーションを作成していて、jQuery.load()を使用してAJAX経由でページコンテンツを読み込みたいとします。私はこれを働かせていますが、問題は、http://パーツを含め、すべてのURLを渡さなければならないことです。そうしないと動作しません。つまり、相対URLパスが失敗しています。jQuery load()とASP.NET MVC URLパス

ので、このに動作します:

$('#params').empty().load('http://localhost:58438/home/getsurveydata #params', val); 

このを失敗:

$('#params').empty().load('/home/getsurveydata #params', val); 

私はウェブ上で見るすべての例では、2番目のフォームがうまく動作する必要があることを示しているようです。何かご意見は?

FWIW「val」部分と#params部分を削除しようとしましたが、違いはありませんでした。それはコントローラにも当てはまらない。そして私が言ったように、それは書かれたように最初のフォーマットで動作し、URLは唯一の違いです。私は何が欠けていますか?

+0

Firebugネットワークモニタを有効にして、要求が行われているかどうか確認できますか?他のいくつかのjavascriptエラーが発生している可能性があります。 –

答えて

0

それが動作しない理由は私には意味がありませんが、ワーストケースのシナリオはあなたがこれを使用することによって、それを動的にすることができます:*使用方法について

$('#params').empty().load('http://@HttpContext.Current.Request.Url.Authority/home/getsurveydata #params', val);

2

どのようにHTML5データ - 属性#paramsコンテナに:

<div id="params" data-url="@Url.Action("getsurveydata", "home")"></div> 

は、今すぐあなたの独立したJavaScriptで次のように記述することができます:

var p = $('#params'); 
p.empty().load(p.data('url') + ' #params', val); 

これは、アプリケーションがどこに配置されているかにかかわらず動作し、urlヘルパーを使用してURLを生成するためにURLをハードコーディングすることを避けるため、Application_Startでルートのレイアウトを変更する場合は変更する必要はありませんUI部分の何か。