MVCでの部分的なビューの読み込みについてもう少し学ぶために、ここの投稿をフォローしようとしていますが、これは非常に間違っている可能性があります。私はMVCの基本を知っていますが、MVCを使い始める前に行っていたajaxのことをもっとやりたいと思っています。
目標は、部分ビューをdiv内にロードすることです。Div内ではなく、ページ全体として部分ビューをロードするだけです。
コードは次のとおりです。
コントローラ:
namespace LDP.WebUI.Controllers
{
public class TestController : Controller
{
//
// GET: /Test/
public ActionResult Index()
{
return View();
}
public PartialViewResult Page1()
{
return PartialView("Page1");
}
public PartialViewResult Page2()
{
return PartialView("Page2");
}
}
}
メインビュー(インデックス):(ポンド記号なしで「mainDiv」も試しましたが、どちらが正しいかわかりませんでした)
<script src="@Url.Content("~/Scripts/libs/jquery-1.8.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/libs/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#hideme').click(function () {
$(this).hide();
});
});
</script>
<div>
@Ajax.ActionLink("Parial Page1", "Page1", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "mainDiv"})
@Ajax.ActionLink("Parial Page2", "Page2", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "mainDiv"})
<div id ='mainDiv'>
</div>
<button id ="hideme">Hide Me</button>
</div>
部分ビュー1(Page1.cshtml)
@{
ViewBag.Title = "Page1";
}
<h2>Page1</h2>
部分ビュー2(Page2.cshtml)
@{
ViewBag.Title = "Page2";
}
<h2>Page2</h2>
更新:新しいMVC4プロジェクトを作成しました。これには、デフォルトで、Jquery1.7.1とMicrosoftの目立たないajaxライブラリが付属しています。それでも、部分ビューが新しいページに読み込まれます...
更新:これが役立つかどうかはわかりませんが、以下は私が望む結果を達成します...しかし、この解決策が機能しない理由についてはまだ問題を解決していません
<button>load about</button>
<script type="text/javascript">
$("button").click(function () {
$("#mainDiv").load("Test/Page2");
});
</script>
enter code here