我试图跟随
here,这可能是错误的,要了解更多关于部分视图加载在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",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>
更新:
我创建了一个全新的MVC 4项目。默认情况下,这是来自于Jquery 1.7.1和来自微软的unobtrusive-ajax库。它仍然加载部分视图在一个新的页面…
更新:不确定如果这有帮助,但以下确实达到我想要的结果…但仍然不解决问题为什么这个解决方案不工作
<button>load about</button> <script type="text/javascript"> $("button").click(function () { $("#mainDiv").load("Test/Page2"); }); </script> enter code here
解决方法
> Ditch#在UpdateTargetId =“#mainDiv” >确保您的页面上引用了jquery.unobtrusive-ajax.min.js脚本。