在Razor中,如何设置当前的模型范围?

时间:2013-05-27 15:32:53

标签: asp.net-mvc linq razor

我甚至不确定如何问这个问题。基本上,你知道在Razor中你有这样的东西:

@model MyProj.childObj
// Current scope is childObj
@Html.LabelFor(m => m.MyVal)
@Html.LabelFor(m => m.MyVal2)
@Html.LabelFor(m => m.MyVal3)
...

这一切都很好,花花公子,但如果我将childObj连成另一个obj怎么办?例如:

@model MyProj.parentObj

现在,我可以这样做:

// Current scope is parentObj
@Html.LabelFor(m => m.childObj.MyVal)
@Html.LabelFor(m => m.childObj.MyVal2)
@Html.LabelFor(m => m.childObj.MyVal3)
...

这很好,但由于我有很多变量,我想这样做:

// Current scope is parentObj
@using (Model.childObj) {
    // Current scope is now childObj
    @Html.LabelFor(m => m.MyVal)
    @Html.LabelFor(m => m.MyVal2)
    @Html.LabelFor(m => m.MyVal3)
    ...
}

这可能吗?

1 个答案:

答案 0 :(得分:1)

是。您可以在Razor中定义变量并使用它们。

@{
    var child = Model.childObj;
    @Html.LabelFor(m => child.MyVal)
    @Html.LabelFor(m => child.MyVal2)
    @Html.LabelFor(m => child.MyVal3)
}