【问题标题】:MVC Check if table is empty from LayoutMVC检查布局中的表是否为空
【发布时间】:2015-11-29 00:53:53
【问题描述】:

我想检查布局页面中的表格是否为空,如果它为空,我想删除导航栏中指向新闻索引的链接。

这是我目前得到的:

型号:

public class News
{
    [Key]
    public int NID { get; set; }

    [UIHint("tinymce_jquery_full"), AllowHtml]
    public string Newstext { get; set; }

    [DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}",
           ApplyFormatInEditMode = true)]
    public DateTime Datum { get; set; }

    public bool Empty
    {
        get
        {
            return (NID == 0 && string.IsNullOrWhiteSpace(Newstext));
        }
    }
}

_Layout.cshtml:

@if (Model.Empty) 
{
    <li><a href="http://localhost:10075/#nyheter">Nyheter</a></li>
} 
else {

} 

现在的问题是它无法读取Model.Empty 是什么,如果我将@model SeikoConsulting.Models.News 放在_Layout.cshtml 的顶部,我会收到此错误:

传入字典的模型项的类型为“System.Collections.Generic.List`1[ImageSlider.Models.Gallery]”,但此字典需要“SeikoConsulting.Models.News”类型的模型项。

【问题讨论】:

    标签: javascript c# html model-view-controller


    【解决方案1】:

    您不应该将这种逻辑放在您的布局中。而是在布局中定义一个可以插入内容的部分。因此,在您的布局中,使用 RenderSection 方法执行以下操作:

    @RenderSection("EmptyTableSection", false)
    

    然后在您的视图中,您可以像这样将内容插入到布局中:

    @section EmptyTableSection {
        <li><a href="http://localhost:10075/#nyheter">Nyheter</a></li>
    }
    

    【讨论】:

    • 我更新了帖子,因为我第一次写的时候不是很清楚。无论如何,如果表格为空,我希望删除导航栏中的
    • 。因此,如果没有新闻,则根本不应该是导航菜单中的链接,无论您在网站上的哪个位置。我认为无论您在网站上的哪个位置,您的方式都行不通。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签