Asp.net mvc 3 向局部视图发送参数

Asp.net mvc 3 向局部视图发送参数,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我是.NET开发新手,需要一些帮助 我需要根据评级显示星星。此显示将出现在我的大多数页面的代码中 所以,我认为最好的处理方法是使用局部视图 经过一些研究,我发现了一些东西,可以让我将这个参数发送到局部视图 例如,通过这样调用局部视图 @Html.Partial("~/Views/Search/_SearchPartial.vbhtml", model.contact.rating) 但是,我不知道如何在局部视图中捕捉这个参数。此外,上下文永远不会相同。有时候,我必须展示的星星来自另一个等级。

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

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

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

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

例如,通过这样调用局部视图

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

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

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

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

电流额定值:@型号

为了让视图知道它正在处理的模型的类型,您需要在局部视图的顶部指定类型:

@model MyNamespace.MovieRating

<div>
 <p>Current rating: @Model</p>
<div>
@model MyNamespace.MovieRating
电流额定值:@型号


所有这些都假设评级对象始终为同一类型。如果有不同的分级对象,则需要将其解析为单个类型,或为每种分级对象类型创建一个视图。

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

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

  • 创建以下文件夹:

    视图/共享/显示模板

  • 在DisplayTemplates文件夹中创建视图。调用它
    Rating.cshtml
    并粘贴该代码:

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

  • @DisplayFor(Model>=Model.Contact.rating,“rating”),它表示'>='n'est pas défini pour les types'mvcapapplication4.contactdetels'et'Integer'。ps:我在VB.NET中开发最后,我这样称呼它:@Html.Partial(“~/Views/Search/\u SearchPartial.vbhtml”,model.contact.rating),并且在使用模型时没有任何问题。太多了!
    @Html.DisplayFor(model=>model.contact.rating, "Rating")