asp.net-mvc-3 - Razor 生成单行文本

标签 asp.net-mvc-3 razor

我想编写 Razor View 助手来生成单行内容:

@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>

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

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

最佳答案

因此,如果我理解正确的话,您是否想要一种用多行指定 View 的方法,而最终输出将是一行上的所有内容?

我认为这不可能开箱即用,但您可以编写自己的自定义 RazorViewEngine(派生自实际的 RazorViewEngine),在返回 View 之前修剪掉所有换行符。

关于asp.net-mvc-3 - Razor 生成单行文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6030069/

相关文章:

jquery - 客户端验证不适用于重用和嵌套的复杂属性

asp.net-mvc-3 - 在@helper 声明中完成@Url Helper

c# - 在 ASP.NET 中创建社区的框架

asp.net-mvc-3 - MVC 3 模型属性未在由 html.action 调用的部分 View 中设置

c# - 始终选择项值为 0 的 DropDownListFor

razor - 在 Visual Studio 2012 中的 Razor 文件中设置断点

c# - MVC3 View : Handling null models with finesse

asp.net-mvc-3 - 每个页面 `ViewModel` 和 (`Create.cshtml` 的 `Edit.cshtml` )?

c# - MVC 创建已配置的空 mvc 项目

c# - 如何使用 Razor 页面模型实现选项卡