我的根目录中有两个文件,即“test1.cshtml”和“test2.cshtml”。
当我尝试在test2.cshtml
中呈现test1.cshtml
时,它成功了,我使用了这段代码:
@RenderPage("~/test2.cshtml");
但是当我尝试使用代码块在test2.cshtml
中呈现test1.cshtml
时,它没有呈现。
@{
RenderPage("~/test2.cshtml");
}
其他信息:
test2.cshtml
包含以下内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
Hello WebMatrix
</body>
</html>
答案 0 :(得分:2)
RenderPage返回一个字符串
首先使用的@code语法设计为运行语句并将输出写入输出流
您使用的第二种语法只执行代码; (它是你指出的代码块,它可以包含多个语句)。你这样丢弃RenderPage语句的结果!
尝试:
@{
var pageHtml = RenderPage("~/test2.cshtml");
}
@pageHtml
答案 1 :(得分:0)
或者:
@{
Response.Write(RenderPage("~/test2.cshtml"));
}
如果您想传递数据:
@{
Response.Write(RenderPage("~/test2.cshtml", new{ Data1 = "Hello", Data2 = "World" }));
}
并使用数据,
.
.
<body>
@Page.Data1 @Page.Data2
@Model.Data1 @Model.Data2
</body>
.
.