Asp.net mvc 我的矩阵实现中的数据太多>>速度慢,无法提交这么多数据

Asp.net mvc 我的矩阵实现中的数据太多>>速度慢,无法提交这么多数据,asp.net-mvc,Asp.net Mvc,我需要一种矩阵来编辑值。以下是我目前的结果: 所以我有一个很大的表格,由几个文本框组成。我仍然需要在标题中添加标题文本,但这只是一个测试 我的解决方案有两个问题: 当我关注矩阵中的数字来改变它时,关注这些文本框需要时间 当我单击submit时,我得到了一个错误,因为返回的元素太多了 我尝试使用更少的数据,效果更好:在不同的文本框中更快地改变焦点,提交效果也很好 以下是我的控制器操作: public ActionResult Index() { var dto =

我需要一种矩阵来编辑值。以下是我目前的结果:

所以我有一个很大的表格,由几个文本框组成。我仍然需要在标题中添加标题文本,但这只是一个测试

我的解决方案有两个问题:

当我关注矩阵中的数字来改变它时,关注这些文本框需要时间

当我单击submit时,我得到了一个错误,因为返回的元素太多了

我尝试使用更少的数据,效果更好:在不同的文本框中更快地改变焦点,提交效果也很好

以下是我的控制器操作:

    public ActionResult Index()
    {
        var dto = _requestServiceClient.GetMatrices();
        var vm = new List<MatrixVM>();
        var viewModel = new MatrixIndexViewModel();
        Mapper.Map(dto, vm);
        viewModel.Matrix = vm;
        return View(viewModel); 
    }

    [HttpPost]
    public ActionResult Index(MatrixIndexViewModel viewModel)
    {
        return View(viewModel);
    }
以下是我使用的模型:

public class MatrixIndexViewModel
{
    public List<MatrixVM> Matrix { get; set; }
}

public class MatrixVM
{
    public int      MatrixID { get; set; }
    public int      OriginStopID { get; set; }
    public string   OriginStopText { get; set; }
    public int      DestinationStopID { get; set; }
    public string   DestinationStopText { get; set; }
    public int      NumberOfDays { get; set; }

}
以下是我的看法:

@model PLATON.WebUI.Areas.Admin.ViewModels.Matrix.MatrixIndexViewModel
@using PLATON.WebUI.App_LocalResources

@{
    Layout = "~/Areas/Admin/Views/Shared/_Layout.Admin.cshtml";
    ViewBag.Title = UserResource.Matrix;
    double nbrStops = Math.Sqrt(Model.Matrix.Count());
    Html.EnableClientValidation(false);
}

@using (Html.BeginForm())
{     
    for (int count = 0; count < Model.Matrix.Count(); count++)
    {
        if (count % nbrStops == 0)
        {   
            // Displaying heading text for each lines         
            @Html.DisplayFor(x => x.Matrix[count].OriginStopText)
        }

        @Html.HiddenFor(x => x.Matrix[count].MatrixID)
        @Html.HiddenFor(x => x.Matrix[count].OriginStopID)
        @Html.HiddenFor(x => x.Matrix[count].DestinationStopID)
        @Html.TextBoxFor(x => x.Matrix[count].NumberOfDays, new { style = "width:13px" })

        if (count % nbrStops == nbrStops - 1) 
        {
            // Proceed next line
            @:<br /> 
        }
    }

    <div class="submit_block"> 
        <input type="submit" class="btn primary" value="Enregistrer" /> 
    </div> 
} 
您是否有更好的实施方案?也许更好的办法是拥有一个只读矩阵,并且能够在jquery对话框中单击元素对其进行编辑。你觉得怎么样

无论如何,谢谢。

我想我会用a来显示数据,在每个单元格的onclick/onmouseenter上,我会显示一个文本框来接受输入


您可以考虑打开一个弹出窗口,这样您就可以在此时将一个值发布到控制器,或者您可以用一个文本框替换单元格文本,并且只在一个隐藏的输入列表中记录更改的值

你解决问题了吗?如何解决?是的,为了解决这个问题,我按照自己的建议做了:拥有一个只读矩阵,并能够在jquery对话框中单击元素进行编辑。好的,感谢您的反馈: