上記では、動的UIと、日付に応じて関連フィールドのIDを動的に設定する方法を示しました。
したがって、これらのデータをアレイajaxポストとしてMVCコントローラーに送信し、コントローラー内でそれらを選択する必要があります。これは、[保存]ボタンをクリックしたときに発生するはずです。
私のpostメソッドは以下のとおりです(上記の配列の詳細はありません):
$("#clocked-details").find("#btnSave").die('click').live('click', function () {
var yearValue = $("#year").val();
var monthValue = $("#month").val();
$.ajax({
url: "/Employees/UpdateEmployeeClockedHoursByProvider",
type: 'POST',
cache: false,
data: { employeeId: employeeId, year: yearValue, month: monthValue },
success: function (result) {
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
return false;
});
私のコントローラーは以下のとおりです(jquery配列のmaupulationなし):
[HttpPost]
public void UpdateEmployeeClockedHoursByProvider(Guid employeeId, int year, int month)
{
}
アップデート
UIは、以下のコードを使用して生成されています。
<% foreach (var ec in Model)
{%>
<tr>
<td>
<%: ec.ClockedDate.ToString("yyyy-MM-dd") %>
</td>
<td>
<input type="number" id="<%: ec.ClockedDate.ToString("yyyy-MM-dd") %>-hours" name="<%: ec.ClockedDate.ToString("yyyy-MM-dd") %>-hours"
class="total-hours" placeholder="Hours" value="<%: ec.TotalHours %>" />
</td>
<td>
<input type="number" id="<%: ec.ClockedDate.ToString("yyyy-MM-dd") %>-minutes" name="<%: ec.ClockedDate.ToString("yyyy-MM-dd") %>-minutes"
class="total-minutes" placeholder="Minutes" value="<%: ec.TotalMinutes %>" />
</td>
</tr>
<% }%>
私の質問:
ajaxを使用して、行データごとに上記の動的2フィールドを送信するにはどうすればよいですか?
コントローラ内でそのアレイを操作する方法は?