这是一个招聘网站:我有一个显示工作的表格,并且有一个申请按钮。如果用户单击应用,将打开一个弹出窗口,用户单击他的信息并单击发送按钮:
当用户单击应用时,将打开一个模态......此模态包含用户信息,即姓名和他的简历(我们在数据库中保留一份使用简历的副本,来自上一个工作申请):
现在,我想让它成为一个高效的设计......我不想一开始就将用户 CV 加载到视图中,以缩短加载时间......所以我正在考虑将整个 Modal 放入ChildAction
如下所示:
显示作业.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 加载模态框会更有效吗,让页面在场景后面显示和加载模态框?