MVC ActionResult не хватает Где выражение правильно - PullRequest
0 голосов
/ 16 мая 2018

Я работаю над приложением приюта для животных. У меня есть AnimalInitializer.cs в моем DAL, и я разбил его на собак и кошек по видам. В моем контроллере я хочу видеть список собак для одного ActionResult и список кошек для другого ActionResult. Все они возвращаются как собаки, когда я запускаю представление ShowDogs, и ничего не возвращается в представлении ShowCats.

Модель питомца:

public enum SpeciesType { Dog, Cat }

public class Pet 
{
    public SpeciesType SpeciesType { get; set; }
}

Семя AnimalInitializer:

var dogs = new List<Dog>
{
     new Dog { SpeciesType = SpeciesType.Dog, Breed = "German Shepherd" }
}

var Cats = new List<Cat>
{
    new Cat { SpeciesType = SpeciesType.Cat, Breed = "Domestic Long Haired" },
}

PetController:

public ActionResult ShowDogs()
    {
        var dogs = db.Pets.Where(d => d.SpeciesType == SpeciesType.Dog);
        return View(dogs.ToList());
    }

public ActionResult ShowCats()
    {
        var cats = db.Pets.Where(c => c.SpeciesType == SpeciesType.Cat);
        return View(cats.ToList());
    }

ShowDogs View:

@model IEnumerable<AnimalShelter1.Models.Pet>

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Breed)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.SpeciesType)
        </th>
    </tr>

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.Breed)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.SpeciesType)
    </td>
</tr>           
}

</table>

ShowCats View:

@model IEnumerable<AnimalShelter1.Models.Pet>

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.SpeciesType)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Breed)
        </th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.SpeciesType)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Breed)
        </td>
    </tr>
}

</table>

ShowDogs view

ShowCats view

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Я только что закончил редактировать тех, которые должны были быть кошками, и спас их, и это, похоже, сработало. Каждый раз, когда я запускаю приложение, животные находятся в своих правильных местах, и точки останова для ShowDogs и ShowCats получают удар и заполняются правильными животными. Странно, я не знаю, что с ним не так ...

0 голосов
/ 16 мая 2018

Я не уверен, работает ли приведенное ниже решение.Но, пожалуйста, попробуйте это:

public ActionResult ShowDogs()
{
    var dogs = db.Pets.Where(d => d.SpeciesType == SpeciesType.Dog).ToList();
    return View(dogs);
}

public ActionResult ShowCats()
{
    var cats = db.Pets.Where(c => c.SpeciesType == SpeciesType.Cat).ToList();
    return View(cats);
}
...