2011-05-12 56 views
2

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

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

我不能叫渲染部分正确这样

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

任何想法?

回答

3

除此之外,你缺少一个;空布局任务后,我看不出有什么阻止你这么做的事实(无法瑞普因为我喜欢说):

@{ 
    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> 
+0

@达林 - 季米特洛夫好奇,它不会在我的例子,因为我是在布局中使用的RenderPartial工作。 – 2011-05-12 21:05:36

+1

@ k-dev,尝试在这种情况下指定部分的完整路径:'@ {Html.RenderPartial(“〜/ Views/SomeController/MyPartialView.cshtml”,MyEnum.Value2); ''或尝试将其放入共享文件夹中。 – 2011-05-12 21:06:57