Вызов частичного просмотра из дома / проблема индекса - PullRequest
0 голосов
/ 19 октября 2018

Я создаю веб-страницу, которая отображает 3 различных типа подписчиков (красный, синий, желтый) и форму фильтра, которую пользователи могут использовать для фильтрации.

Например, если клиент выбирает вариант «Красный»из раскрывающегося списка я хочу показать им только красные подписчики.

Я сейчас создаю выбранную часть, но получаю сообщение об ошибке, которое выглядит следующим образом.

контроллер для пути '/' не найден или не реализует IController.

Это

И это FilterController:

 public class HomeController : Controller
{
    private asp6Entities db = new asp6Entities();
    public ActionResult Index()
    {
        var allFlowers = db.FLOWERs.ToList();
        List<FLOWER> result = new List<FLOWER>();
        foreach (var flower in allFlowers)
        {
            FLOWER model = new FLOWER();
            model = flower;
            result.Add(model);
        }
        return View(result);
    }

    public ActionResult About()
    {
        ViewBag.Message = "Our History";

        return View();
    }

    public ActionResult Contact()
    {
        ViewBag.Message = "Main Store and Distribution Center.";

        return View();
    }

    [HttpPost]
    public ActionResult Index(FilterModel fromColorFilter)
    {
        string SelectedColor = (fromColorFilter.ColorSelected);

        var allFlowers = db.FLOWERs.ToList();
        List<FLOWER> result = new List<FLOWER>();

        foreach (var flower in allFlowers)
        {
            if (flower.COLOR.COLOR_NAME == SelectedColor)
            {
                FLOWER model = new FLOWER();
                model = flower;
                result.Add(model);
            }
        }

        return View(result);
    }  
}

ЭтоКонтроллер фильтра:

 public class FilterController : Controller
{
    // GET: FilterModel
 private asp6Entities db = new asp6Entities();
    public ActionResult Index()
    {
        FilterModel model = new FilterModel();

        var color = db.COLORs.ToList().Select(s => new SelectListItem
        {
            Text = s.COLOR_NAME,
            Value = s.COLOR_ID.ToString()
        });

        return PartialView("~/Views/Shared/_FilterForm.cshtml", new FilterModel { AllColorOptions = color});
    }
}

И это FilterMethod:

   public class FilterModel
{
    //declaring the colors selection
    public string ColorSelected { get; set; }

    //Creating the Size selection
    public string SizeSelected { get; set; }

    //Creating the starting price selection
    public int StartingPriceSelection { get; set; }

    //Creating Ends price Selection
    public int EndingPriceSelection { get; set; }


    //creating IEnumerable of all color options
    public IEnumerable<SelectListItem> AllColorOptions { get; set; }

    //creating IEnumerable of all Size Options
    public IEnumerable<SelectListItem> AllSizeOptions { get; set; }

    //creating IEnumerable of Starting Price Options
    public IEnumerable<SelectListItem> AllStartingPriceOptions { get; set; }

    //creating IEnumerable of Ending Price Options
    public IEnumerable<SelectListItem> AllEndingPriceOptions { get; set; }
}

Это индекс дома:

В этом индексе дома

@Html.Action("Index","FilterForm");

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

да, это лучшее решение

@Html.Action("Index","Filter");
0 голосов
/ 19 октября 2018

Вы должны изменить вызов бритвы на этот

@Html.Action("Index","Filter");

Ваш контроллер FilterController , поэтому вам следует использовать " Filter "как второй параметр, не " FilterForm "

...