【发布时间】:2013-02-15 09:15:33
【问题描述】:
我正在构建一个个人资料页面,其中包含许多与特定模型(租户)相关的部分 - AboutMe、MyPreferences - 诸如此类。这些部分中的每一个都将是一个局部视图,以允许使用 AJAX 进行局部页面更新。
当我单击 TenantController 中的 ActionResult 时,我能够创建一个强类型视图,并且模型数据可以很好地传递给视图。我无法通过部分视图来实现这一点。
我创建了一个局部视图_TenantDetailsPartial:
@model LetLord.Models.Tenant
<div class="row-fluid">
@Html.LabelFor(x => x.UserName) // this displays UserName when not in IF
@Html.DisplayFor(x => x.UserName) // this displays nothing
</div>
然后我有一个视图MyProfile,它将呈现提到的部分视图:
@model LetLord.Models.Tenant
<div class="row-fluid">
<div class="span4 well-border">
@Html.Partial("~/Views/Tenants/_TenantDetailsPartial.cshtml",
new ViewDataDictionary<LetLord.Models.Tenant>())
</div>
</div>
如果我将代码包装在 _TenantDetailsPartial 内的 @if(model != null){} 内的 DIV 内,页面上不会显示任何内容,所以我猜测有一个空模型被传递给视图。
当我从ActionResult 创建强类型视图时,“会话”中的用户如何传递给视图?如何将“会话”中的用户传递给不是从ActionResult 创建的局部视图?如果我在这个概念上遗漏了什么,请解释一下。
【问题讨论】:
标签: c# asp.net-mvc model partial-views asp.net-mvc-views