0

基本上,我有一个包含多个编辑器的表格,如下所示:

<table>
<tr>
<td>@Html.EditorFor(x => x.Random1)</td>
<td>@Html.EditorFor(x => x.Random2)</td>
</tr>
<tr>
<td colspan="2">@Html.EditorFor(x=> x.Random3)</td>
</tr>
</table>

现在,我的问题是,正如您可能已经从 colspan="2" 中发现的那样,我希望我的第三个文本框一直延伸到两列。在普通的 HTML 中自然会添加一个宽度属性。有没有像DataType.MultilineText这样的 DataAnnotation 可以改变编辑器的宽度?还有其他想法吗?

更新:如果我将其更改为 TextBoxFor 而不是 EditorFor,我实际上可以添加@Html.TextBoxFor(x => x.Random, new { style = "width: 500px;" }).
唯一的问题是,我有另一个文本框(让我们说 random4),它以某种方式覆盖了我的 DataAnnotation MultilineText 并使其成为一个普通的 500px 文本框。猜想我必须深入研究 CSS :(

4

3 回答 3

1

您可能会发现这个问题的一些答案很有用。

模板的好处是,如果您不喜欢它们的工作方式,您可以简单地插入您自己的实现。

您还可以尝试使用 CSS 来根据控件的 ID 指定控件的宽度。

于 2011-07-26T11:13:23.387 回答
0

最简单的解决方案是在 css 中设置控件的样式。对于 random3 文本框的错误使用input[type="text"]{width:1px}和 random4 多行文本,错误使用只是使用textarea{width:1px}

于 2011-07-26T12:28:51.067 回答
-1

在模型的属性中 - 在这种情况下 Random3 给它一个注释

public class ViewModelName
{
    [DataType(DataType.MultilineText)]
    public string Random3 { get; set; }
}

那么当你可以 Html.EditorFor(x => x.Random3) 它会知道它需要是多行的

于 2011-07-26T10:58:19.300 回答