Как отправить 2 разных модели вида на контроллер с помощью функции двухкнопочного нажатия? - PullRequest
0 голосов
/ 06 октября 2019

У меня есть страница с данными, которая выполняет 2 функции с 2 разными кнопками. Я использовал 2 разных модели просмотра, одна используется для поиска и вставки, другая для сохранения списка данных.

Мой код просмотра ниже:

@model IEnumerable<ViewModel.TimesheetVM> //TimesheetEntryVM
...
@using (Html.BeginForm("TimesheetEntry", "TimesheetMgmt", FormMethod.Post, new { @enctype = "multipart/form-data" }))
{
    // some design codes
<div class="btn-group">
    <button type="submit" id="btnInsert" name="btnInsert" class="btn btn-block btn-primary btn-flat"><span class="hide-on-mobile">Insert </span><i class="fa fa-plus"></i></button>
</div> //button to search and insert data in datatable
<table cellspacing="1" cellpadding="2" style="cursor:pointer;width:100%" id="tblTimesheetEntry" class="table table-striped table-hover table-bordered table-hd">
    <thead>
        <tr class="gridheader">
            <td valign="middle" align="center" style="width: 2%;">
            </td>
            <td>data1</td>
            <td>data2</td>
            <td>data3</td>
            <td>data4</td>
            <td>data5</td>
            <td>data6</td>
            <td>data7</td>
        </tr>  
    </thead>
    <tbody>
        @if (Model != null)
        {
            int counter = 1;
            foreach (var m in Model)
            {

        <tr>
            <td valign="middle" align="center">
                @counter
            </td>
            <td>@Html.DisplayFor(modelItem => m.data1)</td>
            <td>@Html.DisplayFor(modelItem => m.data2)</td>
            <td>@Html.DisplayFor(modelItem => m.data3)</td>
            <td>@Html.DisplayFor(modelItem => m.data4)</td>
            <td>@Html.DropDownList(m.data5, new SelectList(@data5), "--Select Type--", new {@class = "form-control"  })</td>
            <td>@Html.DropDownList(m.data6, new SelectList(@data6), "--Select Type--", new { @class = "form-control"  })</td>
            <td>@Html.DisplayFor(modelItem => m.data7)</td>

        </tr>
              counter=counter+1;
            }
        }

    </tbody>

    ///after some designs
      <div class="btn-group">
      <a  id="btnConfirm" href="/TimesheetMgmt/TimesheetEntryConfirm" onclick="return confirm('Do you want to Confirm the Timesheet Entry for this month?')" name="btnConfirm" class="btn btn-block btn-success btn-flat"><span class="hide-on-mobile">Confirm</span>&nbsp;<i class="fa fa-save"></i></a>
  </div> //button to confirm and save table data.
}

Мой код контроллера:

[HttpGet]
 public ActionResult TimesheetEntry()
 {
    return View();
 }
[HttpPost]
 public ActionResult TimesheetEntry(TimesheetVM model) 
 {
     List<TimesheetVM> _TimesheetEntryVM = new List<TimesheetVM>();
     //after some codes
         return View(_TimesheetEntryVM);
}
 [HttpGet]
 public ActionResult TimesheetEntryConfirm(List<TimesheetVM> model)
 {
     //after some codes
     //save confirmed data to database
     return RedirectToAction("TimesheetEntry", "TimesheetMgmt");
 }

На самом деле сначала я использовал 2 разные модели, одна из них - «TimesheetEntryVM» для функции «TimesheetEntry» и «TimesheetVM» для функции «TimesheetEntryConfirm», поскольку я новичок в этом и запутался и изменил ту же модель представления дляэти 2 функции - «TimesheetEntry» и «TimesheetEntryConfirm», но даже если я использую это, модель отправляет «TimesheetEntryConfirm» эту функцию как ноль. Вставка данных в datatable работает нормально, но отправка данных для сохранения не работает. Как это исправить? любезно помогите.

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