2016-05-16 1 views
0

私はMVC 3 & MVC 4についてこのトピックについての解答を研究しました。MVC 5の解決策を探していました。私は、ajaxで部分ビューを読み込むビューを持っています。ビュー内で、私はすべて私のJavaScriptロジック(@section Scripts)を定義しているので、私はにはがありません。問題は、私の部分的な視点の中で、成功時にビュー内で定義されたjavascript関数を呼びたいということです。MVC5でajaxによって呼び出されたパーシャルビューで外部のjavascriptを参照する方法は?

以下

私の見解と部分図である

MyView.cshtml

@section Scripts 
{ 
    @Scripts.Render("~/plugins/myplugins") 
    <script> 
     function callFunctionOutsideThisPartialView() { 
     //... This doesn't get called 
     } 
    </script> 
} 

MyPartialView.cshtml

@using (Ajax.BeginForm("MyAction", "MyController", 
new AjaxOptions 
{ 
    HttpMethod = "POST", 
    InsertionMode = InsertionMode.Replace, 
    UpdateTargetId = "divForPartialView", 
    OnSuccess = "callFunctionOutsideThisPartialView()" 
}, new { @class = "form-inline" })) 
{ 
    // Partial View here 
} 

部分の外側にあるJavaScriptの機能にアクセスするための正しい方法は何ですかMVC 5で見る?

+1

部分的な考え方はhtmlコードを再利用することです。あなたが部分ビューレンダリングをどれだけ複雑にしても問題ありません。すべての部分的なビューは最終的にレイアウトに入れられ、1つのhtmlとしてレンダリングされます。あなたのhtmlがあなたのブラウザでレンダリングされるとき、それがあなたのjsが遊びに来る場所です。限り、あなたの部分的なビューは、最終的にあなたのページに読み込ま参照取得されているjs関数です。あなたはokでなければなりません –

+0

これは私が試したものですが、OnSucessのjavascriptは呼び出されていないので、コンソールに関数が存在しないことが示されます。 – usr4896260

+1

@ Ji_in_codingが正しいです。貼り付けたサンプルコードが実際のアーキテクチャでない場合を除き、 'callFunctionOutsideThisPartialView()'関数はグローバルスコープで宣言する必要があります。 –

答えて

1

私が正しく覚えている場合は、通常のビューで部分ビューをレンダリングし、ajax呼び出しでその通常のビューをロードしてください。jqueryを通常のビューにも追加してください。

関連する問題