我试图了解MVC应用程序中用户控件的等价物是什么?据我所知,这是一个偏见。我发现的问题是,当我使用用户控件时,我能够将逻辑封装在该控件中,并在多个页面中重复使用它,而不必担心父页面。
这如何与MVC一起使用?似乎没有任何方法可以用部分视图封装逻辑..实际上它让我感到困惑。
这是否意味着对于任何可能使用partial的页面,控制器总是必须返回部分数据以防万一?这看起来不是很低效吗?我似乎无法理解这是如何工作的......
答案 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中。