我有一些记录。单击每条记录后,需要在手风琴中显示信息。
该信息应该从数据库动态获取。
到目前为止,我所做的是
创建局部视图。那是为了显示详细信息。
在记录上单击后,我调用jquery方法并在控制器上执行我的方法。控制器以Json的形式返回对象(或任何其他东西,打开以获取任何建议)。
现在,JQuery方法具有该(模型)对象,但是如何使用它来呈现其局部视图。
我有一些记录。单击每条记录后,需要在手风琴中显示信息。
您可以通过两种方式实现自己的期望。我想您必须从操作中返回局部视图,该操作提供了有关记录的详细信息。
$("#accordion-container-1").load(url)
。例如
从您的评论中,我看到您必须orderNo
将action作为参数传递。因此,您必须设置orderNo
as
id或将其附加到某个字符串(以避免元素中重复的id),并将其设置为锚点链接的id。
然后,
$(function(){
$("a.somecssclass").click(function(){
var orderNo = this.id;
var url = "/ControllerName/Tracking?orderNo=" + orderNo;
// this will call the action through ajax and update the container with the
// partial view's html.
$("#divToLoadTheHtml").load(url);
});
});
Ajax.ActionLink
通过ajax调用某些控制器动作来创建动作链接,并将html结果更新为容器。例如
在这种情况下,当您通过循环集合生成记录时,您必须通过方法创建链接(单击时必须通过ajax加载内容),Ajax.ActionLink
并且还必须包括jquery'unobtrusive.ajax.js
库。
@foreach(var m in Collection)
{
.. other stuff
@Ajax.ActionLink(link name, "Action", new { orderNo = m.something? },
new AjaxOptions
{
UpdateTargetId = "somediv" // set the div name where you want to load the partial view
});
}
根据OP的评论进行更新
您的操作方法应该是这样的,
public PartialViewResult Tracking(int orderNo)
{
var manager = new OrderManager();
return PartialView(manager.Tracking(orderNo));
}
您应该具有名称Tracking.cshtml
的局部视图,并且必须在局部视图内部创建html,该html表示您正在谈论的记录的详细信息。
Tracking.cshtml
@model TrackingModel
<div>
@Html.DisplayFor(...)
...
</div>
当您Tracking
通过jquery或ajax操作(如前所述)调用操作时,您将获得部分视图html,您可以将其加载到div之类的特定容器中。
问题内容: 如何使用jquery渲染局部视图? 我们可以这样渲染部分视图: 我们如何使用jquery做同样的事情? 问题答案: 我已经使用ajax加载来做到这一点:
问题内容: 我有一个呈现部分视图的控制器动作: 然后将返回的内容加载到动态元素中,如下所示: 因此,这将创建一个div,然后将返回的内容加载到该div中。 我想对此稍作更改,以便仅在对控制器的调用成功的情况下创建容器div。 所以: jQuery调用控制器动作 控制器返回PartialView,如果找不到ID,则返回null 如果返回PartialView,则将创建容器并使用返回的内容加载该容器。
问题内容: 我检查了这个问题,它解决了我的最初问题。但是我不希望仅当用户单击链接时才显示部分视图,我希望在页面加载时显示部分视图,并且可能在加载部分视图时显示进度指示器。 如何实现? 非常感谢您阅读本文。 问题答案: 如果要加载页面,然后通过ajax加载部分视图,则可以创建一个执行以下操作的对象: 然后在您的页面中执行以下操作:
问题内容: 我在MVC应用程序中有此标记。 当它运行时,IngredientsListControl.ascx在浏览器中显示为新页面,并且不会更新Ingredientlistdiv。 这是我的控制器动作 我在这条线上做对了吗? 这就是我将控件呈现到div中的方式,以便它不会加载新页面。 马尔科姆 问题答案: 使用此功能时: …您应该注意,这与 它不会引发onsubmit事件,并且不会调用MVC的A
我正在尝试将过滤器(如Instagram的过滤器)应用于现有视频。 我使用GLSURFACHEVIEW显示视频帧,并希望通过对传入帧应用特定过滤器,使用onDrawFrame()渲染每个帧。 但是在onDrawFrame()中,如何获取传入帧? 谢谢
Blade 内部内置了一个非常简单的模板渲染引擎,如果你有一些简单的页面需要渲染可以试试它(生产环境不适用)。 渲染一个模板需要遵守一条准则: 所有的模板文件都存储在 resources/templates 目录下 你可以调用 Response 方法的 render 方法渲染或者返回一个 String 类型的视图路径。 @GetRoute("/index") public void renderI