我正在尝试按照此处的帖子进行操作,这可能是错误的,以了解有关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>
更新:我创建了一个全新的MVC 4项目。默认情况下,它带有Jquery 1.7.1和Microsoft的unobtrusive- ajax库。仍将部分视图加载到新页面中。
更新:不确定这是否有帮助,但是以下内容确实达到了我想要的结果…但是仍然无法解决该解决方案为什么不起作用的问题
<button>load about</button> <script type="text/javascript"> $("button").click(function () { $("#mainDiv").load("Test/Page2"); }); </script> enter code here
#
UpdateTargetId = "#mainDiv"
jquery.unobtrusive-ajax.min.js