У меня есть страница с данными, которая выполняет 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> <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 работает нормально, но отправка данных для сохранения не работает. Как это исправить? любезно помогите.