小编典典

使用Ajax在.NET MVC4中部分加载视图

ajax

我正在尝试按照此处的帖子进行操作,这可能是错误的,以了解有关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和M​​icrosoft的unobtrusive-
ajax库。仍将部分视图加载到新页面中。

更新:不确定这是否有帮助,但是以下内容确实达到了我想要的结果…但是仍然无法解决该解决方案为什么不起作用的问题

<button>load about</button>
<script type="text/javascript">
    $("button").click(function () {
        $("#mainDiv").load("Test/Page2");
    });

</script>
    enter code here

阅读 191

收藏
2020-07-26

共1个答案

小编典典

  1. #UpdateTargetId = "#mainDiv"
  2. 确保jquery.unobtrusive-ajax.min.js在页面上引用了脚本。
2020-07-26