当前位置: 首页 > 面试题库 >

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

阴福
2023-03-14
问题内容

我正在尝试按照此处的帖子进行操作,这可能是错误的,以了解有关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

问题答案:
  1. #UpdateTargetId = "#mainDiv"
  2. 确保jquery.unobtrusive-ajax.min.js在页面上引用了脚本。


 类似资料:
  • 问题内容: 我检查了这个问题,它解决了我的最初问题。但是我不希望仅当用户单击链接时才显示部分视图,我希望在页面加载时显示部分视图,并且可能在加载部分视图时显示进度指示器。 如何实现? 非常感谢您阅读本文。 问题答案: 如果要加载页面,然后通过ajax加载部分视图,则可以创建一个执行以下操作的对象: 然后在您的页面中执行以下操作:

  • 问题内容: 我在MVC应用程序中有此标记。 当它运行时,IngredientsListControl.ascx在浏览器中显示为新页面,并且不会更新Ingredientlistdiv。 这是我的控制器动作 我在这条线上做对了吗? 这就是我将控件呈现到div中的方式,以便它不会加载新页面。 马尔科姆 问题答案: 使用此功能时: …您应该注意,这与 它不会引发onsubmit事件,并且不会调用MVC的A

  • 问题内容: 我有一个表单,当我单击“提交”时,应该更新同一页面上的部分文档…当我将其放置在此处时: 它按照应有的方式运行,在需要时显示问候。但是当我进入这个… 它根本不做任何事情。我究竟做错了什么? 问题答案: 该请求可能不是Ajax调用。拨打Ajax电话。用户remote_form_for代替form_for或使用jquery.form向控制器发送ajax调用。如果您使用的是jquery,请执行

  • 问题内容: 我有一个呈现部分视图的控制器动作: 然后将返回的内容加载到动态元素中,如下所示: 因此,这将创建一个div,然后将返回的内容加载到该div中。 我想对此稍作更改,以便仅在对控制器的调用成功的情况下创建容器div。 所以: jQuery调用控制器动作 控制器返回PartialView,如果找不到ID,则返回null 如果返回PartialView,则将创建容器并使用返回的内容加载该容器。

  • 问题内容: 我在这个小组中搜索并在Google周围搜索,但仍然没有运气,我也看到有些问题,但是线程并没有帮助,所以我在这里 这个问题很简单,为了帮助您,我在.zip文件中打包了可以测试的文件 http://www.ivanhalen.com/fancyproblem.zip 我有一些链接的主页(index.php) 单击它们将加载通过AJAX的摘要(page.php) 在代码段中,有一个或多个链接

  • 问题内容: 我想在Rails应用程序的“新”视图中每3秒重新加载部分内容。 我有这个 如何每3秒重新加载一次此部分内容?我是否必须为此使用兼容的JavaScript?如何通过ujs实现呢? 问题答案: 将部分放在div中 您可以通过使用像这样的jQuery来做到这一点 现在刷新控制器动作中的部分内容以加载新内容 它肯定会工作.........