我想我可能在 WebMatrix 的 PageData 中发现了一个错误,但我不确定。
它涉及如何将数据从部分页面传递回调用页面。
在 WebMatrix 文档中(教程,例如“3 - 创建一致的外观”,以及示例代码),建议将 PageData 作为在页面之间传递数据的机制(例如从内容页面到布局页面或部分页面)。
然而,我发现这并不总是以另一种方式工作,将数据从部分页面传递回调用页面。在部分页面中修改或添加 PageData 中的条目,似乎无法返回到调用页面。
将其简化为最简单的示例,在测试页面中我们可能会这样:
@{
PageData["test"] = "Initial entry";
}
<p>Before calling the partial page, the test value is @PageData["test"]</p>
@RenderPage("_TestPartial.cshtml")
<p>After returning to the calling page, the test value is @PageData["test"]</p>
在 _TestPartial.cshtml 页面中我们可能有这样的内容:
@{
PageData["test"] = "Modified entry";
}
<p>In the partial page, the test value has been modified to @PageData["test"]</p>
结果输出是这样的:
调用部分页面之前,测试值为Initialentry
部分页面中,测试值已修改为Modified Entry
返回调用页面后,测试值为Initial Entry
因此,当您返回到调用页面时,部分页面对 PageData 所做的修改将会丢失。如果我们向部分页面中的 PageData 添加新条目,也会发生同样的情况。他们只是在返回调用页面时迷失了方向。
我不知道这种行为是否是一个错误,或者是否是故意的,但它使您没有一种干净的方法将数据从部分页面传递回其调用页面。还有另一种(相对干净的)方法吗?或者,如果这是一个错误,是否有解决方法?