我使用的是一种模式,结构如下。
public class detailsbyclientIdviewModel
{
public int upldId { get; set; }
public IPagedList<detailsbyClientId> detailsbyclientId { get; set; }
}
这是我的控制器代码。
List<detailsbyClientId> detailsbyclient = objBAL.detailsbyclient(cId);
IPagedList<detailsbyClientId> pagedLog = detailsbyclient.ToPagedList(pageNumber, pageSize);
detailsbyclientIdviewModel model;
model = new detailsbyclientIdviewModel()
{
detailsbyclientId = pagedLog
};
例如detailsbyclientId中有8个项目。例如,我可以检索和显示每个项目,如下所示。
@foreach (var group in Model.detailsbyclientId)
{
<tr>
<td> @group.clientName </td>
</tr>
}
与上面相同,我有一个属性detailsbyclientId.upldId。 例如,如果我的detailsbyclientId有5个项目,那么我的detailsbyclientId.upldId中有5个项目。我想把所有这5个detailbyclientId.upldId放到jquery数组中。是否可以将模型项推送到jquery数组。我尝试过类似的东西,但没有运气。 var listArray = new Array();
@foreach(var data in Model.detailsbyclientId)
{
listArray.push(data.upld_Id);
}
答案 0 :(得分:0)
您不能将razor(服务器端代码)和javascript(客户端代码)混合在一起(foreach
在发送到客户端之前在服务器上运行,listArray
是一个javascript变量那时不存在。你可以使用
var listArray = @Html.Raw(Json.Encode(Model.detailsbyclientId.Select(x => x.upld_Id)))
虽然查询应该在控制器中,而不是视图。将属性添加到视图模型
public IEnumerable<int> Ids { get; set; }
并将控制器代码修改为
List<detailsbyClientId> detailsbyclient = objBAL.detailsbyclient(cId);
IPagedList<detailsbyClientId> pagedLog = detailsbyclient.ToPagedList(pageNumber, pageSize);
detailsbyclientIdviewModel model = new detailsbyclientIdviewModel()
{
Ids = pagedLog.Select(x => x.upld_Id),
detailsbyclientId = pagedLog
};
并在视图中
var listArray = @Html.Raw(Json.Encode(Model.Ids)))