【问题标题】:pass enum to strong typed partial view将枚举传递给强类型的局部视图
【发布时间】:2011-08-24 10:42:23
【问题描述】:

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

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

我不能像这样正确调用渲染部分

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

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    除了在空布局分配后您缺少; 的事实之外,我看不出是什么阻止您这样做(无法重现,正如我喜欢说的那样):

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

    【讨论】:

    • @darin-dimitrov 很好奇,它在我的示例中不起作用,因为我在布局中使用了 RenderPartial。
    • @k-dev,在这种情况下尝试指定部分的完整路径:@{ Html.RenderPartial("~/Views/SomeController/MyPartialView.cshtml", MyEnum.Value2); } 或尝试将其放入共享文件夹中。
    猜你喜欢
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多