【问题标题】:Condition to display document link (href) in WebMatrix Webgrid在 WebMatrix Webgrid 中显示文档链接 (href) 的条件
【发布时间】:2012-10-12 20:35:19
【问题描述】:

当文档(路径)存在时,我想在 Webgrid 中显示“DOC”链接。

文档完整路径由通用路径(存储在设置表中的路径数据)和文档特定路径(存储在另一个表中的路径数据)构成。

以下将起作用,但没有条件,也没有构造路径!

meetingsGrid.Column("Agenda", format: @<a href="document full path">DOC</a>)

这不起作用:

meetingsGrid.Column("Agenda", format: @<a href="generic path" + "document specific path">DOC</a>)

试过这个:

meetingsGrid.Column("Agenda", format: @<a href="@Url.Action(Path.Combine(@genericpath,specificpath))">DOC</a>)

我尝试添加一些条件,但即使使用完整路径,我也无法使其工作:-(

meetingsGrid.Column("Agenda", format: @if(meetingsData.AgendaPath!=null){@<a href="fullpath">DOC</a>)}else{@Html.Raw("")}

meetingsGrid.Column("Agenda", format: (item) => @Html.Raw((item.AgendaPath!=null) ? (@<a href="fullpath">DOC</a>) : ""))

感谢您的帮助

【问题讨论】:

    标签: razor conditional-statements webmatrix webgrid


    【解决方案1】:

    至少在 webMatrix 1.0 中(我还没有使用 2.0),您必须在格式参数中明确指出您想要发出 html。这是我的生产代码中的一个示例:

    format: @<text><a href="/Dashboard/DealerInfo/@item.Dealer">@item.Dealer</a> </text>
    

    或者如果你的变量可以为空,那么使用你的变量:

    format:  ( meetingsData.AgendaPath.AgendaPath == null ) ? @<text>""</text> : @<text><a href="/Dashboard/DealerInfo/@item.Dealer">@item.Dealer)</a> </text>
    

    哪个?运算符表示 if 之前的语句?为真,返回一个空字符串,否则返回你想要的href。

    【讨论】:

    • 你把什么放在我有@item.Dealer 的地方?您应该可以输入@item.AgendaPath。即使 item.AgendaPath 为空,我相信不会发出任何内容但不会崩溃。
    • 我修改了答案以测试 null
    • 正确,抱歉。认为“项目”是一个动态 SQL 查询,而“经销商”在我的例子中是变量“meetingsData.AgendaPath”。构造路径现在可以工作,但我仍然需要条件语句来避免指向文件夹的“DOC”链接(href="@App.documentsPath@Session[CondoName]@item.AgendaPath">DOC
    • 是的,你是对的。 item 是一个疏忽,不应该是 meetingData.AgendaPath 吗?
    • system.collections.generic.ienumerable 不包含 AgendaPath 的定义 ...
    猜你喜欢
    • 2012-09-14
    • 2013-07-31
    • 2013-07-03
    • 1970-01-01
    • 2013-11-14
    • 2019-01-14
    • 1970-01-01
    • 2011-12-13
    • 2021-05-20
    相关资源
    最近更新 更多