我想知道完成这项任务的最佳方法是什么: 在我的索引方法中,我要么搜索,要么过滤或者只是采取 我的数据库中的数据。然后我发送n个项目进行查看。如果有超过n项 我需要做一些分页。据我所知,我可以再次查询我的数据库 过滤或搜索并接下来的n个元素,或者我可以以某种方式坚持所有 我的数据(过滤或搜索查询后收到的数据)和公正 从中获取下一个元素。据我所知,会议不是最好的方式 完成它,所以而不是这个类的IEnumerable
public class CatalogModel
{
public string Price;
public string deviceName;
public string imgUrl;
}
我决定使用这个课程
public class CatalogView
{
public IEnumerable<CatalogModel> Catalog;
public IEnumerable<Device> Devices;
public CatalogView(IEnumerable<CatalogModel> catalog = null, IEnumerable<Device> devices = null)
{
Catalog = catalog;
Devices = devices;
}
}
我想把所有数据保存在
中 public IEnumerable<Device> Devices
此字段每次都将其发送给控制器, 但是我不知道如何从javascript访问它,所以我可以将其发回 用ajax。
是否可以这样做,并且它会比它更有效率 每次查询我的数据库。
谢谢!
答案 0 :(得分:1)
您应首先在接受CatalogView对象的控制器中执行操作。
要创建与C#对象类似的对象,可以使用此行
var obj = @Html.Raw(Json.Encode(new CatalogView())
将代码修改为
public class CatalogView
{
public IEnumerable<CatalogModel> Catalog;
public IEnumerable<Device> Devices;
public CatalogView(IEnumerable<CatalogModel> catalog = null, IEnumerable<Device> devices = null)
{
Catalog = catalog;
Devices = devices;
}
public CatalogView ()
{
Catalog = new List<CatalogModel>();
Devices = new List<Device>();
}
}
并将所有公共字段设为公共属性,以便与JSON进行转换 4.对于javascript,您可以使用以下代码段
$.ajax({
type: "post",
url: "@Url.Action("YourActionName","ControllerName")",
data: JSON.stringify(obj),
contentType: "application/json",
success: function (details) {
//execute on success
}
});
您应该使用http://www.json.org/js.html将您的对象转换为json