【问题标题】:Razor wishlist - what would you like to be implemented? [closed]Razor 愿望清单 - 您希望实现什么? [关闭]
【发布时间】:2011-03-22 07:11:31
【问题描述】:

Razor 视图引擎看起来很有前途,所以我认为最好在开发还处于预览阶段时提供想法并编译 Razor 功能的愿望清单。

您今天错过了 Spark、Webforms 或 Razor 早期版本中的哪些功能,并希望在 Razor 中实现?

UPD:为什么要关闭这个问题???使用此媒体向 Razor 开发人员创建反馈循环有什么问题?

【问题讨论】:

  • 您是使用 SO 作为输入论坛的 Razor 开发人员吗?我不明白这个问题的意义。
  • 不,我是潜在用户,就像我们这里的许多人一样,愿意让 Razor 变得更好。

标签: asp.net-mvc razor


【解决方案1】:

我想要一个指令来关闭 HTML 输出中的换行符。

@linebreaks off
<span>the three spans</span>
<span>will be rendered</span>
<span>all in one line</span>
@linebreaks on

以上应该产生

<span>the three spans</span><span>will be rendered</span><span>all in one line</span>

【讨论】:

  • 您是否有特殊原因需要指令,或者全局或每页设置也能正常工作?
  • 我想要一个指令:这样我就可以在大多数地方保留布局,但是能够关闭换行符以呈现敏感元素,例如链接的水平列表,其中一行HTML 中的 -break 在相邻元素之间插入一个额外的不受控制的空间。顺便说一句,如果在代码的早期应用,指令也可能具有每页效果。
  • 或者,最好在 View 类中公开属性,开发人员可以通过这些属性在运行时直接从 Razor 代码控制渲染:关闭/打开换行符或关闭/打开HTML 输出中的前导空格。因此,我们消除了对额外指令的需求并实现了控制的灵活性。
  • 我更喜欢 Python Jinja2 模板引擎的 Whitespace Control。jinja.pocoo.org/docs/templates/#whitespace-control
【解决方案2】:

需要更改源代码扩展名,以确保它不是“cshtml”和“vbhtml”,而是更短的,例如“cz”和“vz”。

【讨论】:

  • 想详细说明为什么您更喜欢较短的扩展名? (顺便说一句,我 ASP.NET 团队的开发人员)
  • @marcind:可用性:名称越短,打开的文件就越多,可以放在编辑器栏上。开发人员希望快速找到正确的名称,因此将扩展名称剥离为裸露的“cz”或“vz”也将有助于消除一些视觉噪音,并允许专注于基本要素。
【解决方案3】:

我希望仍然能够在某种指令中指定内容类型。

我们不能在 asp.net mvc 中做到这一点:

<%@ Page ... ContentType="application/rss+xml" %>

我用这个来做 RSS。

【讨论】:

  • 不应该在控制器中吗?
  • 视情况而定。我喜欢在视图中生成 rss 并装饰性地设置内容类型(与在控制器的操作中做所有事情相反)。毕竟 rss 只是 xml,就像 html 一样。
  • 您可以从 Razor 视图访问 HttpResponseBase 对象并在其上设置 ContentType。但是,我同意 Manticore 的观点,因为您可能应该在控制器中执行此操作。
  • 从 Razor 设置内容类型是个坏主意。但是以声明性方式设置内容类型(我在之前的回答中拼错了这个词)的方式是不同的。无论如何,我希望实现这一点。
  • 我同意少即是多,这就是为什么我认为我们应该避免引入 more 语法以获得非常小的好处。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-11
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多