Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不更新mvc视图中的html表值_Html_Asp.net Mvc_Razor - Fatal编程技术网

不更新mvc视图中的html表值

不更新mvc视图中的html表值,html,asp.net-mvc,razor,Html,Asp.net Mvc,Razor,我希望通过从SharePoint列表中检索来显示表中的一些记录。我使用它作为@HtmlBeginForm进行提交。 我有三个按钮 Prev-预览以前的日期记录 下一步-预览下一个日期记录 提交-更新共享点列表(更改表值后) 当页面加载时,它将从今天到最后7天的数据加载到表中 在我的例子中,虽然正确检索了记录,但表不会显示更新的值。它显示默认加载的值 我的桌子-: @using (Html.BeginForm()) {

我希望通过从SharePoint列表中检索来显示表中的一些记录。我使用它作为@HtmlBeginForm进行提交。 我有三个按钮

  • Prev-预览以前的日期记录

  • 下一步-预览下一个日期记录

  • 提交-更新共享点列表(更改表值后)

  • 当页面加载时,它将从今天到最后7天的数据加载到表中

在我的例子中,虽然正确检索了记录,但表不会显示更新的值。它显示默认加载的值

我的桌子-:

@using (Html.BeginForm())
                {

                    <table  border="1" class="table timetrack-tb">

                        <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>
                            }
                            <th>Total</th>
                        </tr>
                        @{ double[] totalForDay = new double[@Model.DateRange+1];
                         double[] total = new double[@Model.TimeTrakings.Count];}

                        @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++)
                                {
                                    if (j != Model.TimeTrakings[i].Count())
                                   {
                                         totalForDay[index] = totalForDay[index] + @Model.TimeTrakings[i][j].Hours;
                                    total[i] = total[i] + @Model.TimeTrakings[i][j].Hours;   
                                    <td>
                                        @Html.EditorFor(model => @Model.TimeTrakings[i][j].Hours)
                                        @Html.HiddenFor(x => x.TimeTrakings[i][j].Id)
                                        @Html.HiddenFor(x => x.DateRange)
                                        @Html.HiddenFor(x => x.TimeTrakings[i][j].ProjectName)
                                        @Html.HiddenFor(x => x.TimeTrakings[i][j].ProjectCode)
                                        @Html.HiddenFor(x => x.TimeTrakings[i][j].Date)
                                    </td>
                                    index++;
                                    }
                                    else
                                    {
                                        totalForDay[index] = totalForDay[index] + total[i];
                                        index++;
                                    }

                                }
                                <td>@total[i]</td>
                            </tr>
                        }

                        <tr>
                            <td>Total for day</td>
                            @foreach (var tot in totalForDay)
                            {
                                <td>@tot</td>
                            }
                        </tr>
                    </table>

                    <input type="submit" name="prevBtn" value="Prev" />
                    <input type="submit" name="NextBtn" value="Next" />
                    <input  type="submit" name="SubmitBtn"  value="Submit"/>
                }

仅不更新@Html.EditorFor(model=>@model.TimeTrakings[i][j].Hours)中的单元格记录元素您所显示的是3个提交按钮,它们发布到同一控制器方法-控制器方法中根据日期“更改”列表的代码是什么?您继续使用
列表
会给您带来问题,正如我在您的应用程序中所指出的!尝试仅在标签中显示值时,已成功更新。当使用@Html.EditorFor()元素和@Html.HiddenFor()元素时,它不会更新。我只更改每个按钮提交的日期。单击“上一页”时,从表的第一列日期中减去一天,然后再次检索尚未显示控制器代码的数据!正确的方法是不要为“下一个”和“上一个”值提交表单-您应该重定向到一个只显示新视图的方法(并传递日期或只传递一个
int
以指示周数),而不更新@Html.EditorFor(model=>@model.TimeTrakings[i][j].Hours)中的单元格记录元素您所显示的是3个提交按钮,它们发布到同一控制器方法-控制器方法中根据日期“更改”列表的代码是什么?您继续使用
列表
会给您带来问题,正如我在您的应用程序中所指出的!尝试仅在标签中显示值时,已成功更新。当使用@Html.EditorFor()元素和@Html.HiddenFor()元素时,它不会更新。我只更改每个按钮提交的日期。单击“上一页”时,从表的第一列日期中减去一天,然后再次检索尚未显示控制器代码的数据!正确的方法不是为“下一个”和“上一个”值提交表单-您应该重定向到显示新视图的方法(并传递日期或只传递一个
int
来指示周数)
public ActionResult Index(TimeTracking timeTracking)
        {
            DateTime today = DateTime.Today;
            int lengthOfTable = timeTracking.DateRange;
            if (Request.Form["SubmitBtn"] != null)
            { 
                timeTrackManager.UpdateTimeTrackingList(timeTracking);
                today = DateTime.Today;
                lengthOfTable = timeTracking.DateRange;
            }
            else if (Request.Form["prevBtn"] != null)
            {
                today = timeTracking.TimeTrakings[0][0].Date.AddDays(-1);
                lengthOfTable = timeTracking.DateRange;

            }
            else if (Request.Form["NextBtn"] != null)
            {
                today = timeTracking.TimeTrakings[0][0].Date.AddDays(timeTracking.DateRange);
                lengthOfTable = timeTracking.DateRange;
            }

            return View(this.ReceiveTimeTrackingData(today, lengthOfTable));
        }