asp.net-mvc - Spark View 引擎与类 Html 属性的绑定(bind)

标签 asp.net-mvc spark-view-engine

我一直在使用Bindings Spark View 引擎的功能取代了我的很多 Html 帮助器方法调用。

我遇到的一个问题是我想定义一个 css 类来传递给辅助方法的匿名字典参数,我通常会这样做:

${Html.EditorFor(x=>x.Username, new{@class = "css-class"})}

用 Spark 绑定(bind)替换它看起来像这样:

绑定(bind):

<element name="Editor">Html.EditorFor(x => x.@For, new {"@*"}) </element>

查看元素:

<Editor For="Password" class="css-class" />

我收到错误“命名空间不能直接包含字段或方法等成员”,该错误是有效的,因为它解析为

Output.Write(Html.EditorFor(x => x.Password, new {class="big"}) );

问题显然是我需要使用 @class 而不是 class。

但是,我不能像这样在 html 属性中指定 @class

<Editor For="Password" @class="css-class" />

因为 Spark 忽略了它。

我也不能这样指定:

<element name="Editor">Html.EditorFor(x => x.@For, new {@"@*"}) </element>

因为这样传递的每个 html 属性都会以 @ 符号为前缀。

所以我的问题是,在使用 Spark 绑定(bind)初始化字典参数时,如何将 class HTML 属性传递给 Spark 绑定(bind),以免引发编译器错误?

最佳答案

您的观察是正确的。我相信您的绑定(bind)中的正确语法如下:

<element name="Editor">Html.EditorFor(x => x.@For, new Dictionary[[string,object]]{{"@*"}}) </element>

而不是

<element name="Editor">Html.EditorFor(x => x.@For, new {"@*"}) </element>

这样,您在 View 中附加到标记的任何未按名称专门处理的属性都将作为名称值对属性传递到渲染的输出上。

我希望我的语法正确,这对你有用吗?

祝一切顺利, 罗布

关于asp.net-mvc - Spark View 引擎与类 Html 属性的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4154999/

相关文章:

asp.net-mvc - Spark View 引擎: How to set default master page name?

css - 复选框顶部居中标签

.net-4.0 - 面向 .NET 4.0 的控制台应用程序中的 Spark

asp.net-mvc-4 - Spark View 引擎中的 C# 代码块?

apache-spark - 运行bin/pyspark时出现这个程序报错需要先build Spark

asp.net-mvc - 您会使用 MVC 2 还是 MVC 1? - S#arp Architectur + Spark View 引擎

asp.net-mvc - ASP.NET MVC 删除操作未触发

asp.net - 如何在 IIS 上限制/验证文件上传文件类型服务器端

javascript - 来自 MCV 的发布数据未调用 JS 函数

asp.net-mvc - MVC 收到来自另一个网站的帖子 - Chrome 表示帖子已取消