加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 用于生成单行文本的Razor

发布时间:2020-12-16 09:45:03 所属栏目:asp.Net 来源:网络整理
导读:我想编写Razor视图助手来生成单行内容: @helper Format(obj) { text @obj.Title @obj.FormatInnerData() (obj.User != null) { @obj.User.Name } text} 但我当然得到了 TitleInner DataUser Name 目前我必须这样做 text@obj.Title @obj.FormatInnerData() @
我想编写Razor视图助手来生成单行内容:

@helper Format(obj) {
   <text>
       @obj.Title
       @obj.FormatInnerData() (obj.User != null)
       {
          @obj.User.Name
       }
   <text>
}

但我当然得到了

Title
Inner Data
User Name

目前我必须这样做

<text>@obj.Title @obj.FormatInnerData() @(obj.User != null ? obj.User.Name : "")</text>

将文本输出生成为单行而不换行,但对于许多属性来说,这可能会变长很长/不可读.

换句话说,如何更方便地使用Razor生成文本内容,而不是标记内容?

UPD:理想情况下会是这样的

<content>@obj.Title</content>
   <content>@obj.Format()
 @obj.User.Name</content>

即只有内容标签之间的部分进入输出流.当然可能是一个更简单的语法,比如@:而不是< text>.

一个示例用例是生成带有标记的JavaScript字符串内容,或者生成带有许可证详细信息的文本文件,格式为“Key:Name(details)”,每行填充空格以进行分组.

解决方法

因此,如果我理解正确,您想要一种方法来指定多行的视图,而最终输出将是一行中的所有内容?

我不认为开箱即用,但您可以编写自己的Custom RazorViewEngine(从实际的RazorViewEngine派生),它会在返回视图之前修剪掉所有换行符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读