現在、MVC4 Webアプリケーションを作成中ですが、奇妙な問題が発生したようです。いくつかのリストアイテムを含む順序付けられていないリストと、クリックできるようになるそれぞれのアンカータグを作成しました。これにより、それぞれの/ CONTROLLER/ACTIONビューが返されます。
<div>
<ul>
<li>
<a class="ajax" href="/Test/One"></a>
</li>
<li>
<a class="ajax" href="/Test/Two"></a>
</li>
<li>
<a class="ajax" href="/Test/Three"></a>
</li>
<li>
<a class="ajax" href="/Test/Four"></a>
</li>
</ul>
</div>
<div id="body">
</div>
次に、いずれかのアンカータグをクリックして「ajax」のクラスを探したときに呼び出すjQueryを作成しました。アンカータグをクリックすると、GetContentという別の関数が実行され、HREF値が渡されます。 ajax呼び出しのパスとして使用されるアンカータグの。
$(document).ready(function () {
$(".ajax").click(function () {
var path = $(this).attr("href");
GetContent(path);
});
});
function GetContent(path) {
$.ajax({
url: path,
type: 'POST',
async: false,
success: function (result) {
$("#body").html(result);
}
});
}
私はあなたが呼び出すことができるpreventDefaultと呼ばれる関数について聞いたことがあります。アンカータグのクリックをオーバーライドするために、このpreventDefaultをいつ呼び出すかわからないことがわかりました。
いくつかの場所に配置してみましたが、運が悪かったのですが...アンカータグのいずれかをクリックできるようになりました。デフォルトのアクションが発生すると、Webサイト全体が新しいもので返されます。ビューがロードされました。ただし、Google Chrome開発者ツールでコンソールを開き、期待するパスを通過して関数GetContentを呼び出すと、関数が呼び出され、ajaxが返され、Webページが更新されます。
誰かがpreventDefault関数を呼び出すことになっている場所を誰かが指摘できれば、それは素晴らしいことです。