微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我想编写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派生),它会在返回视图之前修剪掉所有换行符.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐