ASP.NET MVC - 部分视图是检查模型是空还是空的正确位置?

时间:2011-01-21 13:12:59

标签: asp.net-mvc razor partial-views

我有以下部分观点:

@model IEnumerable<Foo>

<div id="foo">
    @foreach (var foo in Model)
    {
        ...
    }
</div>

如果collection为null或为空,我想显示一些用户友好的消息,否则我想列出所有的集合项。 Shell我在局部视图或内部调用方法中进行检查?在这种情况下最佳做法是什么?为什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

是的,部分视图是正确的位置 - 使用部分视图的原因是您的页面只需要视图名称和对集合的引用。如果将IsEmpty逻辑添加到顶级页面,则会丢失该封装。

答案 1 :(得分:0)

我不是100%熟悉Razor语法,但我会为此创建UI助手。为了保持View简单,我使用以下“规则”:如果我得到if语句或循环,那么我将创建UI助手。

我为每个上下文都有静态类。假设我有一个音乐商店..然后我会有一个名为AlbumHelper的课程

public static class AlbumHelper : {possible inheritance\
{
    public static string CreateAlbumList(Model model)
    {
        // TODO: create list here using technique you prefer
        // <ul><li>empty</li></ul>
        return string.Empty;
    }
}

我要调用的那个(记得在你的Web.config中添加命名空间):

<%= AlbumHelper.CreateAlbumList(Model) %>

如果它常用 control ,那么我会创建扩展名,以便使用此行创建。

<%= Html.AlbumList(Model) %>

Here is a link缩短创建扩展程序的教程