【发布时间】:2019-12-19 08:43:47
【问题描述】:
我想通过 Javascript PopOver 事件(鼠标悬停)通过如下所示弹出一个窗口来访问给定国家/地区的城市列表
为此,在国家/地区列表中,我有以下代码在 CountryController 中执行以下方法
<td>
<a href="#" data-toggle="popover" data-trigger="hover" id="@item.Id">@item.NumberCities</a>
</td>
<script>
$(document).ready(function () {
$('[data-toggle="popover"]').popover({
title: setData,
html: true,
placement: 'right'
});
function setData($id)
{
var set_data = '';
var element = $(this);
var id = element.attr("id");
$.ajax({
url: "/Countries/CitiesDetailsModal/" + id,
method: "post",
async: false,
data: { id: id },
success: function (data)
{
set_data = data;
}
});
return set_data;
}
});
</script>
CountryController.CS:
public ActionResult CitiesDetailsModal(int? id)
{
var paises = countryRepository.GetCountriesWithCities();
return View();
}
问题是我的 GetCountriesWithCities () 方法返回一个 IQueryable,我无法使用 Linq 操作国家变量
my countries 变量的结果是...
从上面可以看出,这个方法列出了国家和其中对应的城市
但是我怎样才能访问它们呢?如何将通过 CountryId 作为 CitiesDetailsModal () 方法中的参数接收到的列表传递给查看列表?
我的模态视图当前接收到一个城市模型,我想用以下 CitiesDetailsModal.CSHTML 格式显示它
@model IEnumerable<SoftwareCore.Common.Models.City>
@{
ViewData["Title"] = "CityNumbers";
}
<h4>Citys</h4>
<div class="container">
@foreach (var item in Model)
{
<p><label>Nombre:</label> @item.Name)</p>
}
</div>
我的模型在哪里玩:
国家.CS:
公共类国家:IEntity { 公共 int ID { 获取;放; }
[Required]
[Display(Name = "Country")]
[MaxLength(50, ErrorMessage = "The field {0} only can contain {1} characters length.")]
public string Name { get; set; }
public ICollection<City> Cities { get; set; }
[Display(Name = "# Cities")]
public int NumberCities { get { return this.Cities == null ? 0 : this.Cities.Count; } }
}
城市.CS:
public class City : IEntity
{
public int Id { get; set; }
[Required]
[Display(Name = "City")]
[MaxLength(50, ErrorMessage = "el campo {0} solo puede contener {1} caracteres de largo.")]
public string Name { get; set; }
}
如何通过 CitiesDetailsModal () 方法显示城市列表?
我是否必须更改我的方法 GetCountriesWithCities () ?或者我可以通过 Linq 驱动 IQueryable 吗?
public IQueryable GetCountriesWithCities()
{
return this.context.Countries.Include(c => c.Cities).OrderBy(c => c.Name);
}
对我有什么帮助吗?
【问题讨论】:
标签: c# asp.net-mvc linq asp.net-core iqueryable