0

试图为这个问题寻求帮助让我想到了一个全新的问题:VB.NET 中完全缺乏资源、书籍和示例 vor MVC 4。我必须在通过经验学习(以及将头撞到墙上的相关感觉)之间做出选择,或者放弃它并一起转向 C#。

如果一家公司不愿意为其兄弟产品提供相同的支持,则任何公司都不应该发货。他们应该完全放弃 VB for MVC,或者为我们提供学习它的方法。

有了这个,这是我的问题。这一行:

@Html.EditorFor(Function(x) x.UsersData(temp).Roles(Role))

是一个不错的代码行。创造奇迹。但是如何向它添加一个类,以便我可以更改我的 css 文件的样式?

好吧,看来这应该可以解决问题:

@Html.EditorFor(Function(x) x.UsersData(temp).Roles(Role), New With {.class = "users-manage-check-box"})

但你猜怎么着,它没有。曾经。结果是一样的。

出了什么问题,我该如何解决?

老实说,我确实想出了一个解决方案。一个让我觉得脏的。

查看该代码的输出,我看到框类是“复选框”。

所以我一直在做的是:

@html.Raw(Html.EditorFor(Function(x) x.UsersData(temp).Roles(Role), New With {.class = "users-manage-textbox"}).ToHtmlString.Replace("check-box", "user-manage-checkbox"))

这感觉不对。大错特错。它不仅是一段可悲的代码,而且还引入了安全风险,我必须在我的解决方案退出开发阶段之前解决这些风险。

关于为什么附加视图数据不能正常工作的任何线索?我有什么问题吗?我要求太多了吗?

非常感谢!

4

1 回答 1

0

我认为 EditorFor 不允许这样做。所以你需要自己创建一个自定义编辑器模板。

您可以在此博客文章中阅读有关创建自定义模板的更多信息

更新:

从http://aspnetwebstack.codeplex.com/看看这个问题的答案

此行为是设计使然。

您调用的重载接受一个名为 additionalViewData ( http://msdn.microsoft.com/en-us/library/ff406462 ) 的对象参数。EditorFor 的默认实现忽略此值。您必须编写自定义编辑器模板才能访问该信息。

于 2013-03-08T20:47:52.233 回答