从ViewComponent
调用View
并传入参数。
@await Component.InvokeAsync("StudentDetails", new { id = 1 });
在StudentDetailsViewComponent
课程中,我必须确保学生(id = 1)在返回视图之前存在于DB中。如果是id == null
或student == null
,则会返回错误视图。但是,我们在控制器中使用的常用NotFound()
不能在这里使用。
我的问题是:有没有正确的方法可以返回可以在所有其他ViewComponents
之间共享的错误页面?
我现在正在做的是在每个Error.cshtml
文件夹下创建一个ViewComponent
,以便可以返回它。
public async Task<IViewComponentResult> InvokeAsync(int? id)
{
if (id == null)
{
return View("Error");
}
var student = await _context.Students
.AsNoTracking()
.SingleOrDefaultAsync(i => i.ID == id);
if (student == null)
{
return View("Error");
}
return View(student);
}
答案 0 :(得分:1)
您可以使用相对路径,例如
return View("../../Error");
或
return View("../../../Shared/Error");