我有一个控制器,动作返回PartialViewResult并用它查看.为了测试我输出当前的DateTime(在行动中),并在视图中检查它是否为空,所以我知道我得到了什么.
当我尝试将该视图"嵌入"另一个视图时,Html.Action我获得当前的日期时间,因此我的操作被调用.
但是当我使用Html.Partial视图渲染为null时,我的动作方法不会被调用.此外,两个断点和调试器也确认,在后一种情况下,我的动作方法不会被调用.
行动方式:
public PartialViewResult Test()
{
return PartialView(DateTime.Now);
}
Run Code Online (Sandbox Code Playgroud)
(部分)查看:
@model DateTime?
<p>@(Model ?? DateTime.MinValue)</p>
Run Code Online (Sandbox Code Playgroud)
并从主视图调用是@Html.Action("Test")或@Html.Partial("Test").
mfa*_*nto 23
Html.Action()将调用您的action方法,但Html.Partial()不会.Html.Partial()只呈现您的局部视图,如果您有一些静态内容,或者您已经加载了视图数据,则它非常有用.
Html.Partial("PartialName", Model.PartialData);
Run Code Online (Sandbox Code Playgroud)
将传递给您的模型数据呈现PartialName视图.这是将视图分解为干净部分的好方法,而不必向服务器发出任何其他请求.
Html.Action("Test")
Run Code Online (Sandbox Code Playgroud)
将调用您的Test操作,并呈现结果.
这就是你看到NULL DateTime的原因.Html.Action()实际上是调用动作,计算DateTime和渲染视图,而Html.Partial()只是渲染视图.
| 归档时间: |
|
| 查看次数: |
8503 次 |
| 最近记录: |