了解加载 ChildAction 的过程
Understanding the process of loading a ChildAction
这是一个招聘网站:我有一个显示职位的表格,还有一个 申请 按钮。如果用户单击“应用”,将打开一个弹出窗口,用户在其中单击他的信息并单击“发送”按钮:
当用户点击 Apply 时,将打开一个模态...这个模态包含用户信息,即姓名和他的简历(我们在数据库中保留一份使用简历的副本求职申请):
现在,我想让它成为一个高效的设计...我不想一开始就将用户 CV 加载到视图中,以缩短加载时间...所以我正在考虑将整个ChildAction
中的模态如下:
DisplayJob.cshtml
@model JobViewModel
@Html.DisplayFor(m => m.JobDescription);
<input type="button" value="Apply" />
@Html.Action("ApplyForJobModal", new { /* route params */ }); // modal to apply for job
控制器操作:
public class JobController : Controller
{
public ActionResult DisplayJob()
{
var jobViewModel = <-- Get JobViewModel from DB
return View(jobViewModel);
}
[ChildActionOnly]
public ActionResult ApplyForJobModal(/* route params */)
{
var userInfoViewModel = <-- Get user name from Claims and CV from DB
return PartialView("_ApplyForJobModal", userInfoViewModel);
}
}
我想了解 ChildAction
PartialView 是如何加载的:
- 客户端是否向服务器发送了 2 个请求,一个用于加载视图,另一个用于加载
ChildAction
?或者所有内容都在一个请求中发回?
- 如果向服务器发送2个请求,主视图的显示是否会延迟到加载子视图?
- 如果视图延迟到加载子操作时,使用 ajax 加载模态是否更有效,让页面在幕后显示和加载模态?
我使用 Chrome 网络选项卡检查代码:
调用 View
和 PartialView
(Action
和 ChildAction
)是同一个 HttpRequest 的一部分,这意味着视图的显示延迟到 ChildAction
准备就绪,然后将整个结果作为单个响应的一部分发送给客户端。
还有一点要提的是JobController
的Constructor
被调用了2次,也就是说Action
和ChildAction
都实例化了自己的[=16]实例=].
这是一个招聘网站:我有一个显示职位的表格,还有一个 申请 按钮。如果用户单击“应用”,将打开一个弹出窗口,用户在其中单击他的信息并单击“发送”按钮:
当用户点击 Apply 时,将打开一个模态...这个模态包含用户信息,即姓名和他的简历(我们在数据库中保留一份使用简历的副本求职申请):
现在,我想让它成为一个高效的设计...我不想一开始就将用户 CV 加载到视图中,以缩短加载时间...所以我正在考虑将整个ChildAction
中的模态如下:
DisplayJob.cshtml
@model JobViewModel
@Html.DisplayFor(m => m.JobDescription);
<input type="button" value="Apply" />
@Html.Action("ApplyForJobModal", new { /* route params */ }); // modal to apply for job
控制器操作:
public class JobController : Controller
{
public ActionResult DisplayJob()
{
var jobViewModel = <-- Get JobViewModel from DB
return View(jobViewModel);
}
[ChildActionOnly]
public ActionResult ApplyForJobModal(/* route params */)
{
var userInfoViewModel = <-- Get user name from Claims and CV from DB
return PartialView("_ApplyForJobModal", userInfoViewModel);
}
}
我想了解 ChildAction
PartialView 是如何加载的:
- 客户端是否向服务器发送了 2 个请求,一个用于加载视图,另一个用于加载
ChildAction
?或者所有内容都在一个请求中发回? - 如果向服务器发送2个请求,主视图的显示是否会延迟到加载子视图?
- 如果视图延迟到加载子操作时,使用 ajax 加载模态是否更有效,让页面在幕后显示和加载模态?
我使用 Chrome 网络选项卡检查代码:
调用 View
和 PartialView
(Action
和 ChildAction
)是同一个 HttpRequest 的一部分,这意味着视图的显示延迟到 ChildAction
准备就绪,然后将整个结果作为单个响应的一部分发送给客户端。
还有一点要提的是JobController
的Constructor
被调用了2次,也就是说Action
和ChildAction
都实例化了自己的[=16]实例=].