非因素 MVC 核心创建动态 html

Posted

技术标签:

【中文标题】非因素 MVC 核心创建动态 html【英文标题】:non factors MVC core create dynamic html 【发布时间】:2018-10-04 10:45:39 【问题描述】:

我正在开发 asp.net 核心应用程序并使用 nonfactors webgrid。

在某些情况下,我需要为模型属性的 truefalse 值创建不同的 html 标记。

对于true => 任何div 标签

对于false => 任何image 标签

有人对此有任何想法吗?

【问题讨论】:

试试if 声明吧? 【参考方案1】:

我经常使用NonFactors MVC Grid,我对你的问题有点困惑,但我会回答我认为我读到的内容。

每个字段都可以按照您认为合适的方式呈现。当字段为 true 时,您可以呈现包含其中任何内容的 div 标签,当 false 时呈现包含其他内容的图像标签。这是一个使用该网格的示例(我使用 User 模型作为示例。因此 Model.Users 是该模型的 IEnumerable):

    @(Html
        .Grid(Model.Users)
        .Build(columns =>
        
            columns.Add(model => model.username).Titled("Username");
            columns.Add(model => model.first_name).Titled("First Name");
            columns.Add(model => model.last_name).Titled("Last Name");
            columns.Add(model => model.last_login).Titled("Last Login").RenderedAs(model => model.last_login == DateTime.MinValue ? "Never" : model.last_login.ToString());
            columns.Add(model => model.banned).Titled("Banned").Encoded(false).RenderedAs(model => model.banned ? "<div>whatever goes here</div>" : "<img />");
        )
        .Filterable()
        .Sortable()
        .Pageable()
        .Css("table table-sm table-striped table-hover table-responsive")
    )    

【讨论】:

感谢@b.pell 实际上,如果它是 bool 属性,我正在尝试像 model.banned 一样做同样的事情。 1 个查询:如果我需要在 div 中放置一些 css,那么我可以直接放置该 css 类或需要使用其他方法。【参考方案2】:

您需要熟悉control structures。

【讨论】:

以上是关于非因素 MVC 核心创建动态 html的主要内容,如果未能解决你的问题,请参考以下文章

核心ASP.NET

从其他项目加载非嵌入式视图

ASP MVC Grid Nonfactors - 向网格表添加新行

基于MVC模式的应用框架之struts

带有 mvc 核心的 Ajax.ActionLink 替代方案

解读ASP.NET 5 & MVC6系列:核心技术与环境配置