【问题标题】:Convert TextBoxFor to LabelFor将 TextBoxFor 转换为 LabelFor
【发布时间】:2011-02-03 17:51:38
【问题描述】:
<%= Html.TextBoxFor(m => m.STPData.ProjectName, new { @class = "economicTextBox", disabled="disabled", propertyName = "STPData.ProjectName", onchange = "UpdateField(this);" })%>

当我直接将其更改为 LabelFor 时,它会因为没有正确数量的参数而对我大喊大叫。然后,如果我从那里取出长的第二个参数,它不会在前端显示正确的字符串。

从这个 TextBox 创建标签的正确方法是什么?

【问题讨论】:

    标签: asp.net-mvc html-helper


    【解决方案1】:

    LabelFor 需要您针对您的属性定义一个属性以放入友好文本中。

    因此,您需要在 STPData.ProjectName 属性中添加属性:[DisplayName("YOUr friendlyname goes here")](示例如下):

    public class STPData
    {
        [DisplayName("Name For Project")]
        public string ProjectName {get;set;}
    }
    

    所以当你打电话时

    <%= Html.LabelFor(m => m.STPData.ProjectName) %>
    

    使用显示名称。

    或者,您可以使用.Label(,然后您可以定义要附加到的控件和要以这种方式显示的文本。

    【讨论】:

    • 在友好名称的属性中,我可以执行类似 this.ProjectName 的操作吗?或者那行不通。我希望它是实际项目名称的标签,而不是该属性的标签。你知道吗?
    • 啊哈,那你不想使用标签。 &lt;%= Html.Encode(Model.STPData.ProjectName)%&gt; 是您需要查看的内容。 MVC 中的标签应始终与控件相关联才能正常工作。
    猜你喜欢
    • 1970-01-01
    • 2019-04-24
    • 2011-03-31
    • 1970-01-01
    • 2021-06-03
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多