我正在尝试理解MVC应用程序中的用户控件是什么?据我所知,这是部分。我发现的问题是,当我使用用户控件时,我能够将逻辑封装在该控件中,并在多个页面中重用它,而不必担心父页面。
这是如何在MVC中工作的?似乎没有任何方法可以用部分视图封装逻辑。事实上,它把我搞糊涂了。
这是否意味着对于任何可能使用部分的页面,控制器总是必须返回部分的数据,以防需要呢?这不是看起来非常低效吗?我似乎不能理解这是怎么回事...
发布于 2012-02-17 18:56:29
您可以使用razor语法添加逻辑。例如,您可以使用条件语句来操作最终输出。
@{
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>
}分式符号中的逻辑与您在Web窗体用户控件中使用的逻辑略有不同。上面的逻辑可以放在一个局部文件中,这样你以后就可以重用它,你只需要把它放在/Views/Shared/DisplayTemplates或EditorTemplates中。
https://stackoverflow.com/questions/9326854
复制相似问题