【问题标题】:Simple Razor question regarding Html.Editor helper (MVC3)关于 Html.Editor 助手(MVC3)的简单 Razor 问题
【发布时间】:2011-07-26 10:54:26
【问题描述】:

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

<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 =&gt; x.Random, new { style = "width: 500px;" })
唯一的问题是,我有另一个文本框(比如说 random4),它以某种方式覆盖了我的 DataAnnotation MultilineText 并使其成为一个普通的 500px 文本框。我猜我不得不深入研究 CSS :(

【问题讨论】:

    标签: asp.net-mvc-3 razor html-helper editorfor


    【解决方案1】:

    您可能会发现this question 的一些答案很有用。

    模板的好处在于,如果您不喜欢它们的工作方式,您可以直接插入自己的实现。

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

    【讨论】:

    • 好的,非常感谢。在那篇文章中有很多不同的方法,我仔细看看它们,看看是否有适合我的东西。
    • 哇,虽然那篇文章在解决这个阅读问题方面付出了很多努力。你应该认为这很简单。
    • 问题实际上在于定义现有模板的简单方式。它们是简单的“10 人入门”。您可以获取或开发功能更丰富的模板;好处是它们只需要开发一次,你可以一遍又一遍地使用它们。以后版本的 MVC 很有可能会有更丰富的模板,但你能等一下吗?
    • 不 :) 查看我对这个问题的更新。有什么想法吗?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • 是的,我很清楚这一点。那不是我的问题。不过还是谢谢 :)
      • 恐怕只有其他方法是通过 CSS 进行控制 :(
      • 猜猜看。史蒂夫回答中的大多数解决方案都太费力了,因为我认为这是基本且非常简单的。
      • Kasper,你试过用 CSS 吗?相关控件的 ID 应该很容易找到 - 使用浏览器中的 View Source 找到它。
      • 是的,我真的只是想避免它。猜猜我不习惯在css中设置控件样式。但它有效,这是最重要的:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-04
      • 1970-01-01
      相关资源
      最近更新 更多