Razor/C#-如何在代码块中呈现页面?
我的根目录中有两个文件,即“test1.cshtml”和“test2.cshtml” 当我尝试在Razor/C#-如何在代码块中呈现页面?,razor,rendering,Razor,Rendering,我的根目录中有两个文件,即“test1.cshtml”和“test2.cshtml” 当我尝试在test1.cshtml中呈现test2.cshtml时,成功了,我使用了以下代码: @RenderPage("~/test2.cshtml"); 但是当我尝试在test1.cshtml中使用代码块渲染test2.cshtml时,它没有被渲染 @{ RenderPage("~/test2.cshtml"); } 其他信息: test2.cshtml包含以下内容: <!DO
test1.cshtml
中呈现test2.cshtml
时,成功了,我使用了以下代码:
@RenderPage("~/test2.cshtml");
但是当我尝试在test1.cshtml
中使用代码块渲染test2.cshtml
时,它没有被渲染
@{
RenderPage("~/test2.cshtml");
}
其他信息:
test2.cshtml
包含以下内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
Hello WebMatrix
</body>
</html>
你好WebMatrix
RenderPage返回一个字符串
您首先使用的@code语法被设计为运行语句并将输出写入输出流
您使用的第二种语法只是执行代码;(正如您所指出的,它是一个代码块,可以包含多个语句)。这样就放弃了RenderPage语句的结果
尝试:
或:
如果要传递数据,请执行以下操作:
@{
Response.Write(RenderPage("~/test2.cshtml", new{ Data1 = "Hello", Data2 = "World" }));
}
并利用这些数据,
.
.
<body>
@Page.Data1 @Page.Data2
@Model.Data1 @Model.Data2
</body>
.
.
。
.
@Page.Data1@Page.Data2
@Model.Data1@Model.Data2
.
.
作为响应,这种方法似乎存在一些问题。页面刚加载时似乎会调用Write,导致内容(在页面开头)脱离上下文写入。@Rafid如果您关心的是主页上的数据,请参阅编辑。如果这不是你关心的问题,请向我解释,以便我可以解决它。非常感谢。
@{
Response.Write(RenderPage("~/test2.cshtml", new{ Data1 = "Hello", Data2 = "World" }));
}
.
.
<body>
@Page.Data1 @Page.Data2
@Model.Data1 @Model.Data2
</body>
.
.