這個的全部含義是,我試圖從我的視圖中獲取一張表,並使用EPPlus從它創建一個Excelsheet。我在我的視圖中有一張表格,其中html助手可以顯示來自我的模型的值。當表格完全創建時,我想在點擊按鈕時將它發送給我的控制器。當表在我的控制器中時,我需要訪問表值,以便從那裏創建我的Excelsheet。將MVC表從MVC中的視圖發送到控制器
我現在面臨的最大問題是,我無法成功發送我的HTML表格到我的控制器。當我在控制器中使用它時,如何訪問這些值?如果可能的話(我猜不是)將表格作爲DataTable發送給控制器會很好。到目前爲止,我已經使用AJAX的嘗試,但我如果有任何其他的方式,我可以與工作以及
我的觀點:
@model IEnumerable<CalcFactory.Models.Calculation>
<table cellspacing="0" width="80%" id"detailTable">
@{var rowID = 0;}
@{var cellID = 1;}
@foreach (var item in Model)
{
<tr id="@rowID">
<td align="center">
@rowID
</td>
<td align="center" id="[email protected]">
@Html.DisplayFor(modelItem => item.PeriodStartDate)
- @Html.DisplayFor(modelitem => item.PeriodEndDate)
</td>
<td align="center" id="[email protected]">
@Html.DisplayFor(modelItem => item.InvoiceAmount)
</td>
<td align="center" id="[email protected]">
@Html.DisplayFor(modelItem => item.InterestRate)
</td>
<td align="center" id="[email protected]">
@Html.DisplayFor(modelItem => item.InterestAmount)
</td>
<td align="center" id="[email protected]">
@Html.DisplayFor(modelItem => item.Amortization)
</td>
<td align="center" id="[email protected]">
@Html.DisplayFor(modelItem => item.PresentValue)
</td>
</tr>
rowID++;
cellID++;
}
</table>
我的控制器:
public class SaveController : Controller
{
public ActionResult SaveExcel(DateTable dt)
{
//Work with table values here. How?
}
}
我的JS:
$(document).on('click', '#saveIcon', function() {
var data = $('#detailTable').html();
var url = "/Save/SaveExcel";
$.ajax({
type: 'POST',
url: url,
data: data,
datatype: DataTable
)}
});
我的模型:
public partial class Calculation
{
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime PeriodStartDate { get; set; }
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime PeriodEndDate { get; set; }
[DisplayFormat(DataFormatString = "{0:.00}")]
public decimal InvoiceAmount { get; set; }
[DisplayFormat(DataFormatString = "{0:P6}")]
public decimal InterestRate { get; set; }
[DisplayFormat(DataFormatString = "{0:.00}")]
public decimal InterestAmount { get; set; }
[DisplayFormat(DataFormatString = "{0:.00}")]
public decimal Amortization { get; set; }
[DisplayFormat(DataFormatString = "{0:.00}")]
public decimal PresentValue { get; set; }
[DisplayFormat(DataFormatString = "{0:.00}")]
public decimal StartValue { get; set; }
public int NumberOfDays { get; set; }
}
您需要將模型傳遞給控制器方法,而不是數據表。另外,您需要首先序列化表單,而不是發佈表單的html – mituw16
您不能在jQuery中使用一種'DataTable'類型,大多數人會使用表單編碼或JSON來提交表格。然後從服務器,你可以綁定/反序列化JSON到模型或類似的東西。 –
你有代碼幫助嗎?我是一個新的這.. – MrProgram