Tag: 部分视图

MVC 4 – 如何将模型数据传递到局部视图?

我正在构建一个配置文件页面,其中包含许多与特定模型(租户)相关的部分 – AboutMe,MyPreferences – 这些事情。 这些部分中的每一部分都将是部分视图,以允许使用AJAX进行部分页面更新。 当我点击TenantController中的ActionResult时,我能够创建一个强类型视图,并将模型数据传递给视图。 部分观点无法实现这一点。 我创建了一个局部视图_TenantDetailsPartial : @model LetLord.Models.Tenant @Html.LabelFor(x => x.UserName) // this displays UserName when not in IF @Html.DisplayFor(x => x.UserName) // this displays nothing 然后我有一个视图MyProfile将呈现提到的部分视图: @model LetLord.Models.Tenant @Html.Partial(“~/Views/Tenants/_TenantDetailsPartial.cshtml”, new ViewDataDictionary()) 如果我在@if(model != null){}内的@if(model != null){}中将代码包装在DIV中,那么页面上就不会显示任何内容,所以我猜测有一个空模型被传递给视图。 为什么当我从ActionResult创建一个强类型视图时,’session’中的用户被传递给视图? 如何将’session’中的用户传递给不是从ActionResult创建的局部视图? 如果我对这个概念遗漏了一些,请解释一下。

在MVC 3中禁用部分视图上的缓存

我有一个部分View被缓存的问题,当它不应该被缓存。 此部分视图用于显示页面上的登录/注销。 它使用下面的简单代码来确定要显示的链接 @if(Request.IsAuthenticated) { Log Off } else { Log On } 使用我的MVC3应用程序中的所有页面调用此部分视图 @Html.Partial(“_HeaderView”) 在我的大多数控制器中,我定义了输出缓存,因此我可以利用缓存内容。 [OutputCache(Duration = 86400, VaryByParam = “*”)] 现在我的问题是,当我不想要部分视图时,整个页面都被缓存了。 这导致了错误的行为,即使用户没有登录,它有时会显示LogOff等。有没有办法缓存所有内容,除了有问题的部分视图?