|
|
1
91
在MVC3中,您可以按如下方式设置宽度:
|
|
|
2
61
我通过在我的/Views/Shared/ReditorTemplates文件夹中创建一个名为String.ascx的EditorTemplate来解决这个问题:
在我看来,我使用
对我来说很有魅力! |
|
|
3
33
在这个或任何其他关于为@HTML设置HTML属性的帖子中都没有答案。EditorFor对我帮助很大。然而,我确实在 Styling an @Html.EditorFor helper 我使用了相同的方法,它工作得很好,不需要编写大量额外的代码。注意html的html输出的id属性。EditorFor已设置。视图代码
带有数据注释和日期格式为“dd MMM-yyyy”的模型属性
无需编写大量额外代码,即可轻松工作。这个答案使用ASP。NET MVC 3 Razor C#。 |
|
|
4
25
可能想看看 Kiran Chand's Blog post ,他在视图模型上使用自定义元数据,例如:
这与使用元数据的自定义模板相结合。在我看来,这是一种干净简单的方法,但我希望看到mvc内置了这个常见的用例。 |
|
|
5
17
我很惊讶没有人提到在“additionalViewData”中传递它并在另一边阅读它。 视图 (为清楚起见,带换行符):
编辑器模板:
|
|
|
6
6
问题是,你的模板可以包含多个HTML元素,所以MVC不知道应该将你的大小/类应用于哪个元素。你必须自己定义它。 让你的模板从你自己的名为TextBoxViewModel的类派生出来:
} 在模板中,您可以这样做:
在你看来,你做到了:
第一个表单将呈现字符串的默认模板。第二个表单将渲染自定义模板。 使用流畅界面的替代语法:
}
请注意,您也可以在控制器中执行此操作,而不是在视图中执行,或者在ViewModel中执行得更好:
还请注意,您可以创建基础TemplateViewModel类——所有视图模板的共同基础——它将包含对属性等的基本支持。 但总的来说,我认为MVC v2需要一个更好的解决方案。它仍然是Beta版——去问吧;-) |
|
|
7
6
我认为使用CSS是正确的做法。我希望我能做得更多。NET编码,就像XAML一样,但在浏览器中CSS是王道。 Site.css
.cshtml
|
|
|
8
6
与MVC 5一样,如果你想添加任何属性,你可以简单地做
从以下位置找到的信息 this blog |
|
|
9
3
我不知道为什么它不适用于Html。EditorFor,但我尝试了TextBoxFor,它对我有效。
…以及验证工作。 |
|
|
10
3
您可以为属性定义属性。
这被称为
顺致敬意, 卡洛斯 |
|
|
11
3
这可能不是最简单的解决方案,但很简单。您可以为HtmlHelper编写一个扩展。班级编辑。在该扩展中,您可以提供一个options参数,该参数将把选项写入辅助对象的ViewData。以下是一些代码: 首先,扩展方法:
接下来,选项对象:
最后,这是String.ascx模板中的行:
坦率地说,我认为这对那些在未来必须维护你的代码的可怜人来说是简单明了的。而且很容易扩展到您想传递给模板的各种其他信息。到目前为止,在一个项目中,它对我来说工作得很好,我试图将尽可能多的内容包装在一组模板中,以帮助标准化周围的html,这是一个 http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-5-master-page-templates.html . |
|
|
12
3
我写了一篇博客来回答我自己的问题 Adding html attributes support for Templates - ASP.Net MVC 2.0 Beta |
|
|
13
2
在我的实践中,我发现最好使用EditorTemplates,其中只有一个HtmlHelper——在大多数情况下是TextBox。如果我想要一个更复杂的html结构的模板,我会编写一个单独的HtmlHelper。 假设我们可以将整个ViewData对象粘贴到TextBox的htmlAttributes中。此外,如果需要特殊处理,我们可以为ViewData的某些属性编写一些自定义代码:
|
|
14
2
因为问题在于 编者为 不是TextBoxFor WEFX的建议不起作用。 要更改单个输入框,可以处理EditorFor方法的输出:
也可以更改所有EditorFors,因为MVC将EditorFor文本框类设置为 .文本框 ,因此,您可以在样式表中或页面上覆盖此样式。
此外,您可以设置以下样式
|
|
|
15
2
我在MVC3中设置TextBox的宽度时也遇到了问题,而设置Clsss属性适用于TextArea控件,但不适用于TextBoxFor控件或EditorFor控件: 我试着跟随&这对我很有效: @Html。TextBoxFor(model=>model.Title,new{Class=“textBox”,style=“width:90%;”}) 在这种情况下,验证也工作得很好。 |
|
|
16
2
一种解决方法是让视图模型上的委托处理打印出这样的特殊渲染。我为一个分页类做了这件事,我在模型上公开了一个公共属性
因此,定义自定义位的编写方式:
输出视图
…对于实际
这可能会让事情变得过于复杂,但我到处都在使用这些寻呼机,无法忍受看到相同的样板代码来呈现它们。 |
|
|
17
1
UPDATE:嗯,显然这行不通,因为模型是按值传递的,所以属性不会被保留;但我把这个答案作为一个想法。
这个更容易,但不那么方便/灵活。 |
|
|
18
1
这是获得解决方案的最干净、最优雅/最简单的方法。 精彩的博客文章,在编写自定义扩展/辅助方法方面没有像疯狂教授那样的混乱矫枉过正。 http://geekswithblogs.net/michelotti/archive/2010/02/05/mvc-2-editor-template-with-datetime.aspx |
|
|
19
0
我真的很喜欢@tjeerdans的答案,它利用了/Views/Shared/ReditorTemplates文件夹中名为String.ascx的EditorTemplate。这似乎是这个问题最直接的答案。但是,我想要一个使用Razor语法的模板。此外,MVC3似乎使用String模板作为默认模板(参见StackOverflow问题“ mvc display template for strings is used for integers
|
|
|
20
0
我解决了!!
|
|
|
Mike · html助手-我如何摆脱name属性? 11 年前 |
|
|
user3902826 · 显示mvc2视图 11 年前 |
|
|
Baxter · 将带有List<T>的视图模型发布到控制器操作方法 12 年前 |
|
|
yoozer8 · 将类应用于某些链接文本 13 年前 |