2

我注意到,当您将模型传递给页面时,加载速度比仅返回(强类型)视图时更快。此外,当您直接在 lambda 表达式中引用Model时,它甚至更快

情况1

public ActionResult Create()
{
    return View();
}

在视图中

@Html.EditorFor(m => m.field)<br />
@Html.ValidationMessageFor(m => m.field)

案例2

private model1 = new model();
public ActionResult Create()
{
    return View(model1);
}

@Html.EditorFor(m => Model.field)<br />
@Html.ValidationMessageFor(m => Model.field)

也许这只是我电脑上的特殊情况,但如果不是,有人可以解释一下这两种不同的方式是如何工作的吗?而且这是否是好的做法?

4

2 回答 2

1

当您传递一个空模型时,mvc 页面确实加载得更快。这是示例结果。测试设置为VS 2012 express edition

@{ var c = DateTime.Now; System.Diagnostics.Debug.WriteLine(c); }// page start code
@{ var d = DateTime.Now; System.Diagnostics.Debug.WriteLine(d); System.Diagnostics.Debug.WriteLine(d - c); }// page end code

15/07/2013 11:31:06 ----- With empty model page start
15/07/2013 11:31:07 ----- With empty model page load completed
00:00:00.2680153    ----- With empty model total load time
-----------------------------------------------------------------------
15/07/2013 11:31:52 ----- Without empty model page start
15/07/2013 11:31:54 ----- With empty model page load completed
00:00:02.0501173    ----- With empty model total load time
-----------------------------------------------------------------------
15/07/2013 11:32:03 ----- Without empty model page start
15/07/2013 11:32:05 ----- With empty model page load completed
00:00:01.9641124    ----- With empty model total load time
-----------------------------------------------------------------------
于 2013-07-15T10:40:54.153 回答
0

您需要分析您的应用程序或至少使用秒表测量性能。对一个用户正确的事情可能对其他用户不正确。

您需要通过多次迭代在相同条件(理想的生产条件)下测试这两种方法,以了解是否存在显着差异。

于 2013-07-03T21:22:22.403 回答