Asp.NET MVC: ошибка контрольного списка контроллера при возврате представления - PullRequest
0 голосов
/ 25 апреля 2018

Однако, пытаясь вернуть 3 списка в представление, я получаю сообщение об ошибке при преобразовании system.generic.list в строку.Он принимает один список, но не более 1. Конечной целью является добавление флажка, поэтому я следую учебному пособию, которое я нашел в Интернете по адресу: этот сайт .Любая помощь будет принята с благодарностью

Вот контроллер:

CronValues cv = new CronValues();

public ActionResult schedulerIndex()
{
    var dayOfMonthList = new List<CronValues>
    {
        new CronValues{DayOfMonth = Convert.ToInt32(Enumerable.Range(1,31).ToList()),IsChecked = false}

    };

    var monthList = new List<CronValues>
    {
        new CronValues{DayOfMonth = Convert.ToInt32(Enum.GetValues(typeof(CronValues.Months))),IsChecked = false}
    };

    var dayOfWeekList = new List<CronValues>
    {
         new CronValues{DayOfWeek = Convert.ToInt32(Enum.GetValues(typeof(CronValues.DaysOfWeek))),IsChecked = false}
    };

    return View(dayOfMonthList, monthList, dayOfWeekList);
}

Вот модель:

public class CronValues
{

   public enum Months
    {
        Jan = 0,
        Feb = 1,
        Mar = 2,
        Apr = 3,
        May = 4,
        Jun = 5,
        Jul = 6,
        Aug = 7,
        Sep = 8,
        Oct = 9,
        Nov = 10,
        Dec = 11
    }

  public  enum DaysOfWeek
    {
        Mon = 0,
        Tue = 1,
        Wed = 2,
        Thu = 3,
        Fri = 4,
        Sat = 5,
        Sun = 6
    }


    public int Second
    {
        get;
        set;
    }

    public int Minute
    {
        get;
        set;
    }

    public int Hour
    {
        get;
        set;
    }

    public int DayOfMonth
    {
        get;
        set;
    }

    public int Month
    {
        get;
        set;
    }

    public int DayOfWeek
    {
        get;
        set;
    }

    public bool IsChecked
    {
        get;
        set;
    }
}

1 Ответ

0 голосов
/ 25 апреля 2018

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

Возможное решение для вашего случая может выглядеть примерно так:

IndexSchedulerViewModel

public class IndexSchedulerViewModel
{
    public List<CronValues> DayOfMonthList { get; set;}
    public List<CronValues> DayOfWeekList { get; set;}
    public List<CronValues> MonthList { get; set;}
}

SchedulerController

CronValues cv = new CronValues();

// GET: Scheduler
[HttpGet]
public ActionResult schedulerIndex()
{
    var dayOfMonthList = new List<CronValues>
    {
        new CronValues{DayOfMonth = Convert.ToInt32(Enumerable.Range(1,31).ToList()),IsChecked = false}

    };

    var dayOfWeekList = new List<CronValues>
    {
        new CronValues{DayOfWeek = Convert.ToInt32(Enum.GetValues(typeof(CronValues.DaysOfWeek))),IsChecked = false}
    };

    var monthList = new List<CronValues>
    {
        new CronValues{DayOfMonth = Convert.ToInt32(Enum.GetValues(typeof(CronValues.Months))),IsChecked = false}
    };

    return View(new IndexSchedulerViewModel
    {
        DayOfMonthList = dayOfMonthList,
        DayOfWeekList = dayOfWeekList,
        MonthList = monthList
    });
}

Индекс

@model YourProjectNamespace.ViewModels.IndexSchedulerViewModel

// The code below demonstrates how to access the ViewModel's properties on the view.
@Model.DayOfMonthList
@Model.DayOfWeekList
@Model.MonthList
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...