我有一些记录。单击每条记录后,需要在手风琴中显示信息。
您可以通过两种方式实现自己的期望。我想您必须从操作中返回局部视图,该操作提供了有关记录的详细信息。
- 聆听锚链接的click事件,然后在事件内部构造URL,然后单击
$("#accordion-container-1").load(url)。
例如
从您的评论中,我看到您必须
orderNo将action作为参数传递。因此,您必须设置
orderNoas
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); }); });- 使用MVC支持的Ajax操作链接。您可以使用
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之类的特定容器中。



