Чекбокс MVC3, передающий значения из представления обратно в модель - PullRequest
1 голос
/ 23 февраля 2012

У меня есть модель вида, которая просто

public class Visits
{
    public List<Visit> visits { get; set; }
}

В моей модели посещения у меня есть

public bool ValidVisit { get; set; }

. Я в состоянии передать все в мой вид в порядке и отобразить всепосещения на представлении.Представление выглядит так:

@model TheWallSite.ObjectModels.Visits

@{
    ViewBag.Title = "Potential invalid visits!";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm())
{
       <fieldset>
        <table>
            <tr><th>Check In/Out Time</th><th>Visit Type</th><th>In/Out</th><th>IP</th><th>SSO ID</th><th>Valid Visit</th></tr>

            @foreach (var item in Model.visits)
            {
                <tr>
                    <td>@Html.DisplayFor(model => item.InOutTime)</td>
                    <td>@Html.DisplayFor(model => item.VisitType)</td>
                    <td>@Html.DisplayFor(model => item.VisitName)</td>
                    <td>@Html.DisplayFor(model => item.IP)</td>
                    <td>@Html.DisplayFor(model => item.SSO)</td>
                    <td>@Html.EditorFor(model => item.ValidVisit)</td>
                </tr>
            }
        </table>
        <input type="submit" value="Submit" />
       </fieldset>
}

Проблема, с которой я столкнулся, заключается в том, что я хочу, чтобы конечный пользователь мог включить / отключить ValidVisit, а затем передать их обратно контроллеру и внести корректные изменения в мою базу данных.У меня чертовски много времени, чтобы понять, как это сделать.Какие-либо предложения?Моя подпись [HttpPost] контроллера

public ActionResult ListQuestionableVisits(Visits model, FormCollection forms)

, но, похоже, ничего не возвращается к контроллеру.

1 Ответ

2 голосов
/ 23 февраля 2012

Это будет привязка к модели, которая не сработает, вероятно, из-за цикла.

Я знаю, я знаю, что должно работать, но делать это правильно, и этоимеет больше шансов на работу.

Попробуйте вместо этого использовать шаблоны редактора.

/ EditorTemplates / Visit.cshtml

@model TheWallSite.ObjectModels.Visit
<tr><td>@Html.DisplayFor(model => model.InOutTime)</td></tr>
<tr><td>@Html.DisplayFor(model => model.VisitType)</td></tr>
<tr><td>@Html.DisplayFor(model => model.VisitName)</td></tr>
<tr><td>@Html.DisplayFor(model => model.IP)</td></tr>
<tr><td>@Html.DisplayFor(model => model.SSO)</td></tr>
<tr><td>@Html.EditorFor(model => model.ValidVisit)</td></tr>

Основной вид:

@model TheWallSite.ObjectModels.Visits

@{
    ViewBag.Title = "Potential invalid visits!";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm())
{
       <fieldset>
        <table>
            <tr>
               <th>Check In/Out Time</th>
               <th>Visit Type</th>
               <th>In/Out</th>
               <th>IP</th>
               <th>SSO ID</th>
               <th>Valid Visit</th>
            </tr>                
            @Html.EditorFor(model => model.Visits)
        </table>
        <input type="submit" value="Submit" />
       </fieldset>
}

Кроме того, если это ваше полное представление, вам не нужен параметр FormCollection в действии, если только нет скрытого поля / какого-либо другого магического поля, которое я не вижу.

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