我正在构建一个配置文件页面,其中会包含一些与特定模型(租户)相关的部分 - AboutMe,MyPreferences - 这些类型的东西。这些部分中的每一个都将成为局部视图,以允许使用AJAX进行局部页面更新。MVC 4 - 如何将模型数据传递给部分视图?
当我在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
包裹DIV里面的代码在@if(model != null){}
里面没有任何东西显示在页面上,所以我猜测有一个空的模型被传递给视图。
当我从'ActionResult
'创建一个强类型视图时,'session'中的用户传递给了视图,怎么会这样?如何在'会话'中将用户传递给不是从ActionResult
创建的部分视图?如果我错过了这个概念,请解释一下。
我真的试过了更早,它没有工作!我不能重建我的解决方案......谢谢,它的工作原理。 – MattSull 2013-03-01 00:28:02