asp.net MVC 5 - Невозможно получить доступ к элементам в списке, в представлении - PullRequest
0 голосов
/ 20 марта 2019

Я делаю веб-приложение в MVC, похожее на Change.org, где пользователи могут создавать причины для подписи других людей. В моем представлении указателя причины я пытаюсь отобразить список людей, подписавших причину. Я могу использовать счетчик в списке для отображения количества подписей, но я пытаюсь получить доступ к элементу в списке для их отображения. Любая помощь по этому вопросу будет принята с благодарностью.

Мои модели подразделяются на Причину, Подпись и Категории, например ...

Причина:

public class Cause
{   

    [Key]
    [StringLength(100)]
    [DisplayName("Cause Title")]
    public string CauseTitle { get; set; }
    [Required]
    [StringLength(500)]
    public string Description { get; set; }
    [Required]
    public string UserEmail { get; set; }
    [Required]
    [DisplayName("Date Posted")]
    public DateTime DatePosted { get; set; }
    public string ImageURL { get; set; }
    [DisplayName("Catagory")]
    public string CatagoryTitle { get; set; }
    [ForeignKey("CatagoryTitle")]
    public Catagory Catagory { get; set; }
    [DisplayName("Signatures Target")]
    public int TargetSignatures { get; set; }

    public virtual List<Signature> Signatures { get; set; }
}

категоризация:

public class Catagory
{   
    [DisplayName("Catagory Title")]
    [Key]
    public string CatagoryTitle { get; set; }
    [DisplayName("Catagory Description")]
    public string CatagoryDescription { get; set; }
    public virtual List<Cause> Causes { get; set; }
}

Подпись:

public class Signature
{
    [Key]
    public int SignatureId { get; set; }
    [Required]
    public string UserEmail { get; set; }
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
    [Required]
    public string CauseTitle { get; set; }
    [ForeignKey("CauseTitle")]
    public virtual Cause Cause { get; set; }

}

Контроллер индекса моей причины:

 public class CausesController : Controller
{
    private CauseContext db = new CauseContext();

    // GET: Causes
    public ActionResult Index()
    {
        var causes = db.Causes.Include(c => c.Catagory);
        return View(causes.ToList());
    }

и мой индексный вид:

    @model IEnumerable<SoWokeWebApp.Models.Cause.Cause>

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@foreach (var item in Model)
{
<div class="jumbotron">
    <img src="@item.ImageURL" alt="Alternate Text" class="img-fluid" />
    <h1>@Html.DisplayFor(model => item.CauseTitle)</h1>
    <p>@Html.DisplayFor(model => item.Description)</p>
    <p>@item.Signatures.Count</p>
    @foreach (var Signature in item.Signatures)
    {
        <p>Signature.</p>
    }
    <p><a class="btn btn-primary btn-lg" href="#" role="button">@Html.ActionLink("Sign Cause", "Create", "Signatures")</a></p>
</div>

1 Ответ

0 голосов
/ 26 марта 2019

Вы отлаживали код и проверяли, приходят ли данные подписи или нет ?. Я думаю, что вы должны включить список подписей в модель метода индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...