c# - 在 PartialView 中获取变量

标签 c# asp.net-mvc razor

假设我像这样将数据传递给分部 View

@Html.Partial("_LandingPage_CaseStudiesList", new { TrackAction = "Case Study Click", CaseStudies = Model.CaseStudies  })

然后如何获取部分数据?

我已经尝试过 Model["TrackAction"]Model.TrackAction 但都不起作用,我不知道还能尝试什么。

如果我调试代码,我可以看到这些属性,但不知道用什么来取回它们

这是我的部分

<ul id="case-studies-list" class="table">

@{
    int counter = 1;
    foreach (Asset caseStudy in caseStudies)
    {

        <li class="@(counter == 1 ? "first " : string.Empty)cell">
            <a href="@caseStudy.Url" class="track-event" data-action="@trackAction" data-label="Case Study Download" data-value="@caseStudy.Name" target="_blank">
                <span class="sprite @string.Format("case-study{0}", counter)"></span>
                <span class="text">
                    @Html.Raw(caseStudy.Name)<br />
                    <span class="font11">@Html.Raw(caseStudy.Location)</span>
                </span>
            </a>
        </li>

        counter++;
    }
}

</ul>

这是我在调试时得到的图像:http://i.imgur.com/OiReWZv.gif

最佳答案

您可以按照问题中的方式将匿名对象作为模型传递给局部 View :

@Html.Partial("_LandingPage_CaseStudiesList", new { TrackAction = "Case Study Click", CaseStudies = "fsdffd" })

然后您在局部 View 中有几个选项:

  1. 不要在您的 View 中声明模型(即不要包含声明 像顶部的 @model MyModel)

  2. 将模型声明为动态模型(即包含类似@model dynamic 的语句)

在这两种情况下,您都应该能够访问您的属性

@Model.TrackAction
@Model.CaseStudies 

此外,您不会对 View 文件进行智能感知,如果该属性在模型中不存在,您将在运行时收到异常。

关于c# - 在 PartialView 中获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22866255/

相关文章:

c# - 从 C# 打开 Excel ODBC 连接

c# - Crystal Reports ApplyLogOnInfo 从不工作

asp.net-mvc - 在 Controller 上使用依赖注入(inject)进行单元测试

asp.net-mvc - MVC3 Razor View 中的三元运算符和检查属性

c# - 设置位掩码以针对等于 0xFFFF0000 的 int 使用的最方便的方法是什么

c# - asp插入错误

javascript - 不引人注目的验证甚至在我的 javascript 调用提交之前就失败了

asp.net-mvc - 如何链接到将数组作为参数的操作(RedirectToAction 和/或 ActionLink)?

c# - 如何将值分配给变量并将其用于 MVC Razor 中的另一个操作

c# - 为什么我们需要在 Html.BeginForm 中使用@using