将参数发送到局部视图

时间:2012-03-19 14:36:39

标签: asp.net-mvc-3 razor

我是.NET开发的新手,需要一些帮助。

我需要根据评级显示星星。此显示将在我的大多数页面中显示在代码中。

所以,我认为处理这个的最好方法是使用局部视图。

经过一些研究,我发现了一些能让我将这个参数发送到局部视图的东西。

例如,通过调用部分视图

 @Html.Partial("~/Views/Search/_SearchPartial.vbhtml", model.contact.rating)

但是,我不知道如何在局部视图中捕获此参数。此外,背景将永远不会相同。有时候,我必须展示的明星将来自另一个评级。它改变了什么吗?

3 个答案:

答案 0 :(得分:1)

当您将评级传递给局部视图时,您可以通过局部视图中的Model对象访问它

<div>
<p>Current rating: @Model</p>
<div>

要了解要处理的模型类型,您需要在局部视图的顶部指定类型:

@model MyNamespace.MovieRating

<div>
 <p>Current rating: @Model</p>
<div>

所有这些都假设评级对象将始终属于同一类型。如果您有不同的评级对象,那么您需要将它们解析为单个类型,或者为每种评级对象创建一个视图。

答案 1 :(得分:1)

评级值将是局部视图的Model对象(作为整数或双精度),就像在普通视图中一样使用它。

答案 2 :(得分:1)

使用编辑器模板或显示模板更有效地应对这种情况。使用模板

  1. 创建该文件夹:

    观看/共享/展示模板

  2. 在DisplayTemplates文件夹中创建一个视图。称之为Rating.cshtml并粘贴该代码:

    @model int
    
    <div><p>Current rating: @Model</p></div>
    
  3. 在您的视图中调用此模板,而不是@ Html.Partial:

    @Html.DisplayFor(model=>model.contact.rating, "Rating")