DevExpress MVC LabelFor - set css class

本文关键字:css class set MVC LabelFor DevExpress | 更新日期: 2023-09-27 18:12:59

我用LabelFor MVC HtmlHelper渲染了一个简单的标签,我似乎找不到一种方法来附加一个css类,它把我逼上了墙。

<div>
@Html.DevExpress().LabelFor(m => m.Total, settings => {
    settings.Name = "Total";
    settings.Width = Unit.Percentage(100);
}).Bind(Model.Total).GetHtml()
</div>

根据文档,添加第三个参数指定html属性似乎就足够了,所以我很自然地尝试了:

<div>
@Html.DevExpress().LabelFor(m => m.Total, settings => {
    settings.Name = "Total";
    settings.Width = Unit.Percentage(100);
}, new { @class = "myLabel" }).Bind(Model.Total).GetHtml()
</div>

但是Visual Studio抱怨这是LabelFor()方法的无效重载。
有线索吗?谢谢。

EDIT:我环顾四周,根据这个问题,似乎没有内置的LabelFor()过载,它接受指定html属性的对象(OP的问题认为id属性);如果我右键单击该方法并跳转到它的定义,我将看到以下内容,这也将确认LabelFor()不接受对象参数:

#region Assembly DevExpress.Web.Mvc5.v14.1.dll, v14.1.4.0
// C:'Program Files (x86)'DevExpress 14.1'Components'Bin'Framework'DevExpress.Web.Mvc5.v14.1.dll
#endregion
using DevExpress.Web.ASPxClasses;
using DevExpress.Web.ASPxEditors;
using System;
using System.Web.Mvc;
namespace DevExpress.Web.Mvc
{
    public class LabelExtension : EditorExtension
    {
        public LabelExtension(LabelSettings settings);
        public LabelExtension(LabelSettings settings, ViewContext viewContext);
        protected internal MVCxLabel Control { get; }
        protected override EditPropertiesBase Properties { get; }
        protected internal LabelSettings Settings { get; }
        protected override void AssignInitialProperties();
        protected override ASPxWebControl CreateControl();
        protected override bool IsSimpleIDsRenderModeSupported();
    }
}

但是Todd对第一个答案的评论,以及我上面链接的MSDN文档,都表明情况并非如此。
是哪一个?

DevExpress MVC LabelFor - set css class

我想你要找的是:

    settings.ControlStyle.CssClass = (CssClassName);

它对我有效。希望能为贵公司工作