将 table 值从视图传递到控制器 mvc
pass table values from view to controller mvc
我正在做一个 .Net + share-point 的项目,
在控制器中获取共享点列表记录并创建列表对象列表。
在视图中将对象捕获为一个模型并在 table.
中显示
Table 查看
enter image description here
Index.cshtml
@using( Html.BeginForm() )
{
<table id = "timeTrackingView" border="1" >
<tr>
<th>Projects</th>
@for (var date = @Model.Dates.AddDays(-(@Model.DateRange-1)); date <= @Model.Dates; date = date.AddDays(1))
{
<th >@date.Day/@date.Month/@date.Year</th>
}
</tr>
@{ double[] totalForToday = new double[@Model.DateRange];}
@for (int i = 0; i < @Model.TimeTrakings.Count; i++)
{
//var projectName = @Model.TimeTrakings[i][0].ProjectName;
int index = 0;
<tr>
<td>
@Model.TimeTrakings[i][0].ProjectName
</td>
@for (int j = 0; j < Model.TimeTrakings[i].Count(); j++)
{
totalForToday[index] = totalForToday[index] + @Model.TimeTrakings[i][j].Hours;
var time = @Html.EditorFor(model => @Model.TimeTrakings[i][j]);
<td>@time</td>
@*@Html.EditorFor(model => @Model.TimeTrakings[i][j].Hours)*@
index++;
}
</tr>
}
<tr>
<td>Total for day</td>
@foreach(var tot in totalForToday)
{
<td>@tot</td>
}
</tr>
</table>
<input type="submit" name="SubmitBtn"/>
}
我正在尝试将 table 数据输入控制器.. 帮助我输入我的代码只有 gettinh 小时,需要一起获取项目名称日期和时间。
我的控制器。
[HttpPost]
public ActionResult Index(TimeTracking timeTracking)
{
////do the logic here
return View(this.ReceiveTimeTrackingData());
}
我使用了两种模式-:
型号 1
public class TimeTrackingDetails
{
public string ProjectName { get; set; }
public DateTime Date { get; set; }
public double Hours { get; set; }
}
模型 2-:
public class TimeTracking
{
public List<List<TimeTrackingDetails>> TimeTrakings { get; set; }
}
如果您需要项目名称,您应该创建一个 input
。现在在你的代码中你只有纯文本和这一行:
@Model.TimeTrakings[i][0].ProjectName
再添加一行:
@Model.TimeTrakings[i][0].ProjectName
// this line will create additional hidden input and on form post it will be sended to server.
@Html.HiddenFor(x => x.TimeTrakings[i][0].ProjectName)
我正在做一个 .Net + share-point 的项目, 在控制器中获取共享点列表记录并创建列表对象列表。 在视图中将对象捕获为一个模型并在 table.
中显示Table 查看 enter image description here
Index.cshtml
@using( Html.BeginForm() )
{
<table id = "timeTrackingView" border="1" >
<tr>
<th>Projects</th>
@for (var date = @Model.Dates.AddDays(-(@Model.DateRange-1)); date <= @Model.Dates; date = date.AddDays(1))
{
<th >@date.Day/@date.Month/@date.Year</th>
}
</tr>
@{ double[] totalForToday = new double[@Model.DateRange];}
@for (int i = 0; i < @Model.TimeTrakings.Count; i++)
{
//var projectName = @Model.TimeTrakings[i][0].ProjectName;
int index = 0;
<tr>
<td>
@Model.TimeTrakings[i][0].ProjectName
</td>
@for (int j = 0; j < Model.TimeTrakings[i].Count(); j++)
{
totalForToday[index] = totalForToday[index] + @Model.TimeTrakings[i][j].Hours;
var time = @Html.EditorFor(model => @Model.TimeTrakings[i][j]);
<td>@time</td>
@*@Html.EditorFor(model => @Model.TimeTrakings[i][j].Hours)*@
index++;
}
</tr>
}
<tr>
<td>Total for day</td>
@foreach(var tot in totalForToday)
{
<td>@tot</td>
}
</tr>
</table>
<input type="submit" name="SubmitBtn"/>
}
我正在尝试将 table 数据输入控制器.. 帮助我输入我的代码只有 gettinh 小时,需要一起获取项目名称日期和时间。
我的控制器。
[HttpPost]
public ActionResult Index(TimeTracking timeTracking)
{
////do the logic here
return View(this.ReceiveTimeTrackingData());
}
我使用了两种模式-: 型号 1
public class TimeTrackingDetails
{
public string ProjectName { get; set; }
public DateTime Date { get; set; }
public double Hours { get; set; }
}
模型 2-:
public class TimeTracking
{
public List<List<TimeTrackingDetails>> TimeTrakings { get; set; }
}
如果您需要项目名称,您应该创建一个 input
。现在在你的代码中你只有纯文本和这一行:
@Model.TimeTrakings[i][0].ProjectName
再添加一行:
@Model.TimeTrakings[i][0].ProjectName
// this line will create additional hidden input and on form post it will be sended to server.
@Html.HiddenFor(x => x.TimeTrakings[i][0].ProjectName)