htmlAttributes:在Html.LabelFor中

时间:2015-10-30 02:58:00

标签: c# asp.net-mvc visual-studio

我为Northwinds DB's product表创建了scaffolded视图。我知道它正在new {@class...创建匿名类型。但是,我在下面的代码中并没有理解部分htmlAttributes:。它在做什么?

@Html.LabelFor(model => model.UnitsInStock, 
    htmlAttributes: new { @class = "control-label col-md-2" })

它与new { htmlAttributes = new { @class = "form-control" }这段代码有什么不同?我希望我能正确地提问。我在Visual Studio 2015中使用了MVC 5.

1 个答案:

答案 0 :(得分:2)

htmlAttributes:指定了一个命名参数,因此它将匿名对象(new { @class = "control-label col-md-2")传递给htmlAttributes方法的LabelFor()参数。

在这种情况下,它不是绝对必要的,因为LabelFor()overload只接受表达式和object所以它也可能只是

Html.LabelFor(m => m.UnitsInStock, new { @class = "control-label col-md-2" })

但是使用命名参数允许您以任何顺序指定方法的参数。

另请参阅Named and Optional Arguments

的文档