Asp.net mvc 3 调用并在MVC视图中临时存储和对象

Asp.net mvc 3 调用并在MVC视图中临时存储和对象,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我仍在学习ASP.NET MVC3 Razor引擎,我正在努力思考如何完成一些看起来非常简单的事情 我有一个静态类,它封装了一个调用第三方API的方法。我的\u Layout.cshtml母版页调用静态类,例如 if(@Rf.Models.PageContent.GetSomething().IsSomethingHappening) { <span>@Rf.Models.PageContent.GetSomething().Name</span> } if(@R

我仍在学习ASP.NET MVC3 Razor引擎,我正在努力思考如何完成一些看起来非常简单的事情

我有一个静态类,它封装了一个调用第三方API的方法。我的
\u Layout.cshtml
母版页调用静态类,例如

if(@Rf.Models.PageContent.GetSomething().IsSomethingHappening) {
   <span>@Rf.Models.PageContent.GetSomething().Name</span>
}
if(@Rf.Models.PageContent.GetSomething().IsSomethingApping){
@Rf.Models.PageContent.GetSomething().Name
}
如您所见,我正在从静态类PageContent、方法GetSomething复制工作(以及对第三方API的调用),该方法返回一个类

在常规的旧MVC2中,我会这样做:

<% var obj = Rf.Models.PageContent.GetSomething();
   if(obj.IsSomethingHappening) { %>
   <span><%=obj.Name%></span>
<% } %>

…这不会重复努力

我想调用PageContent.GetSomething()一次,存储它,如果我的标志为true,则引用它。如果我的标志为true,我不想再次调用PageContent.GetSomething()


这可能是一个非常简单的问题,但我有点被困在如何完成它。如何从Razor引擎中复制相同类型的功能?

Razor中的等效功能是:

@{
    var obj = Rf.Models.PageContent.GetSomething();
}

@if (obj.IsSomethingHappening)
{
    <span>@obj.Name</span>
}
在相应的视图中(
~/Views/Foo/Index.cshtml
):

使用@{}语法

@{
    var obj = Rf.Models.PageContent.GetSomething();    
 }

 @if (obj.IsSomethingHappening)
 {
     <span><@obj.Name></span>
 }
@{
var obj=Rf.Models.PageContent.GetSomething();
}
@如果(对象是某事物出现)
{
}

太棒了,你的建议太棒了。非常感谢。
@model AppName.Models.SomeViewModel
@if (Model.IsSomethingHappening)
{
    <span>@Model.Name</span>
}
@Html.Action("Index", "Foo")
@{
    var obj = Rf.Models.PageContent.GetSomething();    
 }

 @if (obj.IsSomethingHappening)
 {
     <span><@obj.Name></span>
 }