Как передать список динамически генерируемых полей ввода из представления в контроллер в asp. net MVC - PullRequest
0 голосов
/ 20 июня 2020

У меня есть динамически сгенерированные поля ввода, но я не могу смоделировать привязку и передать список значений в контроллер, когда я отправляю данные без списка, а затем сопоставляю. Когда я отправляю форму, я получаю нулевой объект, есть модель проблема привязки

[HttpPost]public ActionResult PatientVitals(List<PatientVitals> pvitalsDetails)
{

    var enterBy = SessionHelper.GetLoggedInUserId();
    var patientVitals = new PatientVitals();
    var patient = (Session["Patient"] as Patient) ?? new Patient();
    var response = new AjaxResponse
    {
        Code = 400,
        MessageClass = "warning",
        ResponseText = "Unable to process"
    };

ответ возврата}

Это представление Razor с пространством имен

@model List<PKLI.Model.Emr.PvitalsDetails>

это форма сообщения

 @using(Html.BeginForm("PatientVitals", "EMR", FormMethod.Post))

{

<div class="table-responsive">
        <table class="table table-striped">
            <thead>
                <tr>
                    <th>Vitals/Measurement</th>
                    <th>Values</th>
                    <th>Unit</th>
                    <th>Time Taken</th>
                </tr>
            </thead>

            <tbody>
                @if (Model != null) { 
                int j = 0;
                foreach (var item in Model)
                {
                    <tr>
                        <td>
                            @item.Name
                            <input type="hidden" name="@Model[j].VitalsInformationId" id="vitalId+@j" value="@item.VitalsInformationId"/>
                        </td>
                        <td>                                                                   
                            <input placeholder="@item.Name" type="text" name="@Model[j].Readings"  id="Reading+@j"class="form-control" />
                        </td>
                        <td>
                            @item.Unit
                            <input type="hidden" name="@Model[j].Unit" id="Unit+@j"class="form-control" />
                        </td>
                        <td>
                       <input type="text" name="@Model[j].Time" id="Time+@j"  class="form-control"placeholder="Enter Time" data-mask="99:99" />
                          </td>
                    </tr>
                    j++;
                }
                }
            </tbody>
        </table>
    </div> 

}

1 Ответ

0 голосов
/ 20 июня 2020

Попробуйте использовать объект viewbag вместо var.

viewbag.id = 0;
viewbag.enterby= SessionHelper.GetLoggedInUserId();
var patientVitals = new PatientVitals();
viewbag.patient = (Session["Patient"] as Patient) ?? new Patient();
var response = new AjaxResponse
{
    Code = 400,
    MessageClass = "warning",
    ResponseText = "Unable to process"
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...