2012-01-08 21 views
8

動作しない私は、ビューのページを持っているasp.net MVC partialviewが

私の見解ページ

<div id="beReplaced"> 
    @Ajax.ActionLink("please click on me to bring the partial view", 
        "PatrialViewToBeCalled", 
        new AjaxOptions() 
         {UpdateTargetId = "beReplaced", 
         InsertionMode = InsertionMode.InsertAfter, 
         HttpMethod="Get", 
         LoadingElementId = "prgress" }) 
</div> 

私はコントローラー

public PartialViewResult PatrialViewToBeCalled() 
{ 
    var customer = db.Customers.First(); 

    return PartialView("PartialViewThatMustBeShow",customer); 
} 

が、私はクリックを持っています生成されたリンクでは、 の代わりに新しいページが表示され、divタグに部分的なビューが追加または追加されます。

問題が何ですか?

+3

解決策が見つかりました。この問題は、破損したunobtrusive-ajax.min.jsファイルが原因です。 – 1AmirJalali

+0

これを解決策として投稿し、これを閉じる必要があります – Shenaniganz

+0

閉じるとはどういう意味ですか?どのように私はそれを閉じる必要がありますか? – 1AmirJalali

答えて

1

解決策が見つかりました。この問題は、破損したunobtrusive-ajax.min.jsファイルが原因です。

0

jQueryをページに読み込んだら、単純なjquery get/loadメソッドを使用して部分的なビューを取得してみましょう。

<div id="beReplaced"> 
    <a href="#" id="lnk1">please click on me to bring the partial view</a> 
</div> 

Javascriptが

$("#lnk1").click(function(){ 
$.get('/controller/PatrialViewToBeCalled', function(data) { 
     $('#beReplaced').html(data); 
     }); 
}); 
+0

私は自分のビューをきれいに保ち、可能な限り小さくしようとしているので、MVCのAjaxヘルパーは複雑なステートメントを作成する権限を持っています。 – 1AmirJalali

+1

私は私の意見をきれいにしたい場合は、私は目立たない原理に固執するだろう。私はこのjQueryのアプローチは、ビュー内であなたのajaxパラメータメソッドを与えるよりもはるかにクリーンであると思う(私はhtmlのマークアップを見たいのですが) – Shyju

+0

Downvoter?コメントする気に? – Shyju

10

それはあなたが欠落していたことだったかもしれない:メインビューで

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 

。これは、メインビューにajaxヘルパーを認識させるように指示します。

+0

+1それは私のためにそれを解決しました - ありがとうございました。 – EM0

0

あなたはASP .NET MVC 4で作業している場合

@Scripts.Render("~/bundles/jquery") 

が同様にbodyタグの終わりであることを確認してください。

 @Scripts.Render("~/bundles/jquery") 
     @RenderSection("scripts", required: false) 
    </body> 
</html> 
0

私はちょうどそれがうまくいかないと思っています。ページソースを表示しても何も表示されませんでした。

最終的に、Firebugのコンソールで正常な要求を見たときに実際に動作することがわかりました。それは単にそれを画面に表示していた。 FirebugのHTMLタブでは、ページソースに表示されないのに、最終的に出力が見つかりました。