zoukankan      html  css  js  c++  java
  • What's the difference between Html.Label, Html.LabelFor and Html.LabelForModel

    What's the difference between Html.Label, Html.LabelFor and Html.LabelForModel

    回答1

    Html.Label gives you a label for an input whose name matches the specified input text (more specifically, for the model property matching the string expression):

    // Model
    public string Test { get; set; }
    
    // View
    @Html.Label("Test")
    
    // Output
    <label for="Test">Test</label>
    

    Html.LabelFor gives you a label for the property represented by the provided expression (typically a model property):  LabelFor需要配置DisplayName这个Attribute进行使用

    // Model
    public class MyModel
    {
        [DisplayName("A property")]
        public string Test { get; set; }
    }
    
    // View
    @model MyModel
    @Html.LabelFor(m => m.Test)
    
    // Output
    <label for="Test">A property</label>
    

    Html.LabelForModel is a bit trickier. It returns a label whose for value is that of the parameter represented by the model object. This is useful, in particular, for custom editor templates. For example:

    // Model
    public class MyModel
    {
        [DisplayName("A property")]
        public string Test { get; set; }
    }
    
    // Main view
    @Html.EditorFor(m => m.Test)
    
    // Inside editor template
    @Html.LabelForModel()
    
    // Output
    <label for="Test">A property</label>
    

    回答2

    Html.Label - Just creates a label tag with whatever the string passed into the constructor is

    Html.LabelFor - Creates a label for that specific property. This is strongly typed. By default, this will just do the name of the property (in the below example, it'll output MyProperty if that Display attribute wasn't there). Another benefit of this is you can set the display property in your model and that's what will be put here:

    public class MyModel
    {
        [Display(Name="My property title")
        public class MyProperty{get;set;}
    }
    

    In your view:

    Html.LabelFor(x => x.MyProperty) //Outputs My property title
    

    In the above, LabelFor will display <label for="MyProperty">My property title</label>. This works nicely so you can define in one place what the label for that property will be and have it show everywhere.

  • 相关阅读:
    体检套餐管理系统
    Altium Designer9.4局域网内冲突的问题
    关于ARM Linux下的SD卡及U盘的挂载问题
    mkimage command not found – U-Boot images will not be built
    Xilinx------BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用
    linux文件压缩解压命令
    VIVADO 入门之仿真与逻辑分析仪使用
    Linux自动运行应用程序
    ZYNQ学习之二-EMIO
    inux grep 命令 搜索含有"zynq"字符的文件
  • 原文地址:https://www.cnblogs.com/chucklu/p/15561206.html
Copyright © 2011-2022 走看看