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

C# 将枚举传递给强类型局部视图,c#,asp.net-mvc,asp.net-mvc-3,partial-views,strong-typing,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); } 有什

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

@model MyEnum 
@{
   Layout = null
}
@if (Model == MyEnum.Value1) {
    //... dosomething
}
@if (Model == MyEnum.Value2) {
    //... do another thing
}
我不能像这样恰当地称之为“渲染部分”

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

有什么想法吗?

除了你缺少一个
在空布局分配之后,我看不到有什么阻止您这样做(正如我所说的,无法重新编程):

下面是一个完整的工作示例,说明这应该是可行的

型号:

public enum MyEnum
{
    Value1,
    Value2
}
控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
}
Index.cshtml
查看:

<div>
@{ Html.RenderPartial("MyPartialView", MyEnum.Value2); }
</div>
结果HTML中的预期输出:

<div>Value 2 was selected</div>
已选择值2
@darin dimitrov好奇的是,在我的示例中它不起作用,因为我在布局中使用了RenderPartial。@k-dev,在本例中,请尝试指定分部的完整路径:
{Html.RenderPartial(~/Views/SomeController/MyPartialView.cshtml),MyEnum.Value2);
或尝试将其放入共享文件夹。
@model MyEnum
@{
    Layout = null;
}
@if (Model == MyEnum.Value1) {
    <div>Value 1 was selected</div>
}
@if (Model == MyEnum.Value2)
{
    <div>Value 2 was selected</div>
}
<div>Value 2 was selected</div>