2012-03-19 108 views
2

我是.NET开发新手,需要一些帮助。发送参数到局部视图

我需要显示评分函数中的星星。这个显示会出现在我的大部分页面中。

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

经过一些研究,我发现了一些应该使我能够将此参数发送到局部视图。

例如,通过调用像

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

的局部视图但是,我不知道如何捕捉到局部视图里面这个参数。此外,上下文永远不会相同。有时,我必须展示的星星将来自另一个评级。它会改变什么吗?

回答

1

当您通过等级的局部视图,您可以通过Model对象访问它的局部视图

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

内对于视图知道它是处理你的模型的类型需要指定部分视图顶部的类型:

@model MyNamespace.MovieRating 

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

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

1

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

1

使用editor-templates或display-templates可以更有效地处理这种情况。对于使用模板

  1. 创建文件夹:

    查看/共享/ DisplayTemplates

  2. 创建DisplayTemplates文件夹内部的图。说它Rating.cshtml和粘贴代码:

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

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

@ Html.DisplayFor(型号> = Model.Contact。评级“,”评级“),它表示'> ='n'est pasdéfinipour les types'MvcApplication4.ContactDeteils'et'Integer'。 ps:我最终在VB.NET – 2012-03-19 15:09:02

+0

中开发,我称之为:@ Html.Partial(“〜/ Views/Search/_SearchPartial.vbhtml”,model.contact.rating),还没有使用该模型的任何问题。多谢! – 2012-03-19 15:13:58