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