假设我像这样将数据传递给分部 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 中有几个选项:
不要在您的 View 中声明模型(即不要包含声明 像顶部的
@model MyModel
)将模型声明为动态模型(即包含类似
@model dynamic
的语句)
在这两种情况下,您都应该能够访问您的属性
@Model.TrackAction
@Model.CaseStudies
此外,您不会对 View 文件进行智能感知,如果该属性在模型中不存在,您将在运行时收到异常。
关于c# - 在 PartialView 中获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22866255/