I can't manage to get my head around how to use MVC to create the following table, and successfully bind it to a model:

enter image description here

I basically need to keep track of which days of the month an event needs to happen. Here is my attempt at a model:

EDIT: This isn't for a month, but for a arbitrary 4 week cycle

public class ScheduleViewModel
{
    public int PatientId { get; set; }          
    public List<Schedule> Schedules { get; set;}          
}

public class Schedule {
    public int Week { get;set;}
    public Day Day { get;set;}
    public bool IsSelected { get;set;}    
}

public enum Day
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

And I can render a view successfully (that isn't bound to the model). I realise that I would need to use @html.CheckBoxFor in place on my inputs.

Here is a rough copy of my html for the view:

@model WebApplication10.Models.ScheduleViewModel
@using (Html.BeginForm())
{
<table class="table table-striped">
    <thead>
        <tr>
            <th></th>
            @{
foreach (Day t in Enum.GetValues(typeof(Day)))
{
    <th>@t</th>
}
            }
        </tr>
    </thead>
    <tbody>

        @{
for (int i = 1; i <= 4; i++)
{
    <tr>
        <td>Week @i</td>
        @foreach (Day t in Enum.GetValues(typeof(Day)))
        {
            <td><input type="checkbox" /></td>
        }
    </tr>
}
        }
    </tbody>
</table>

<div class="form-group">
    <div class="col-md-offset-2 col-md-10">
        <input type="submit" value="Create" class="btn btn-default" />
    </div>
</div>
}

How would I successfully post which check-boxes have been selected? Does my ViewModel make sense?

Related posts

Recent Viewed