将枚举传递给强类型的局部视图

时间:2011-05-12 20:18:02

标签: c# asp.net-mvc asp.net-mvc-3 partial-views strong-typing

我有一个强类型的局部视图,它接收一个枚举:

@model MyEnum 
@{
   Layout = null
}
@if (Model == MyEnum.Value1) {
    //... dosomething
}
@if (Model == MyEnum.Value2) {
    //... do another thing
}

我无法像这样正确地调用渲染部分

@{ Html.RenderPartial("MyPartialView", MyEnum.Value2); }

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

除了在null布局赋值后丢失;这个事实之外,我无法看到是什么阻止你这样做(无法按照我喜欢的方式重新编写):

@{
    Layout = null;
}

这是一个完整的工作示例,说明这应该有效。

型号:

public enum MyEnum
{
    Value1,
    Value2
}

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
}

Index.cshtml查看:

<div>
@{ Html.RenderPartial("MyPartialView", MyEnum.Value2); }
</div>

MyPartialView.cshtml部分:

@model MyEnum
@{
    Layout = null;
}
@if (Model == MyEnum.Value1) {
    <div>Value 1 was selected</div>
}
@if (Model == MyEnum.Value2)
{
    <div>Value 2 was selected</div>
}

作为结果HTML中的预期输出:

<div>Value 2 was selected</div>