我有一个用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>


根据the documentation,添加第三个参数来指定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()方法的无效重载。
有什么线索吗?谢谢。

编辑:我环顾四周,根据this question,似乎没有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's comment以及我上面链接的MSDN docs可能表示相反的建议。
哪有

最佳答案

我认为您正在寻找:

    settings.ControlStyle.CssClass = (CssClassName);


它为我工作。我希望我会为你工作

关于c# - DevExpress MVC LabelFor-设置CSS类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24732039/

10-10 14:09