MVC Partials与用户控件?

时间:2012-02-17 10:47:56

标签: asp.net-mvc asp.net-mvc-3

我试图了解MVC应用程序中用户控件的等价物是什么?据我所知,这是一个偏见。我发现的问题是,当我使用用户控件时,我能够将逻辑封装在该控件中,并在多个页面中重复使用它,而不必担心父页面。

这如何与MVC一起使用?似乎没有任何方法可以用部分视图封装逻辑..实际上它让我感到困惑。

这是否意味着对于任何可能使用partial的页面,控制器总是必须返回部分数据以防万一?这看起来不是很低效吗?我似乎无法理解这是如何工作的......

1 个答案:

答案 0 :(得分:1)

您可以使用剃刀语法添加逻辑。例如,您可以使用条件语句来操纵最终输出。

@{ 
    if(whatever == true) 
    {
       <p>Whatever is true</p>
    }
    else
    {
       <span id="someId">
           <label for="enterName">Enter name:</label> <input type="text" id="enterName" />
       </span>
    }
}

除此之外,您还可以使用@helper语法,如

@helper MakeLink(dynamic id)
{
    <div id="actionButtons">
        @Html.ActionLink("Some Title", "Some Action", new {id = id}) |
        @Html.ActionLink("Another Title", "Another Action", "Some Controller", new {id = id})
    </div>
}

partials中的逻辑与Web Forms用户控件中的逻辑略有不同。上面的逻辑可以放在Partial中,以便以后可以重用它,只需将它放在/ Views / Shared / DisplayTemplates或EditorTemplates中。