我有以下_Layout.cshtml:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>My Title</title>
</head>
<body>
<div class="container body-content">
@await Html.PartialAsync("~/Views/" + Model.Theme + "/_Header.cshtml")
@RenderBody()
@await Html.PartialAsync("~/Views/" + Model.Theme + "/_Footer.cshtml")
</div>
</body>
</html>
取决于“ Model.Theme”的值,我想渲染该部分(如果存在)。但是,如果它不存在,那么我就不希望该部分渲染。
如果Partial不存在,如何防止“ InvalidOperationException”?
请注意,我要测试部分内容,而不是Model.Theme。主题将始终存在,但并非所有部分都可用。
答案 0 :(得分:1)
还原为默认值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>My Title</title>
</head>
<body>
<div class="container body-content">
@if (System.IO.File.Exists(@"Views/" + Model.Name + "/_Header.cshtml"))
{
@await Html.PartialAsync("~/Views/" + Model.Name + "/_Header.cshtml")
}
@RenderBody()
@if (System.IO.File.Exists(@"Views/" + Model.Name + "/_Footer.cshtml"))
{
@await Html.PartialAsync("~/Views/" + Model.Name + "/_Footer.cshtml")
}
</div>
</body>
</html>