如何在来自视图的视图值中显示标签

本文关键字:视图 显示 标签 | 更新日期: 2023-09-27 18:25:41

我在视图中有一个标签,我需要在该标签中显示值,并且我已经在控制器中为该标签分配了值。。

这是型号

 namespace MvcSampleApplication.Models
 {    
     public class labelsdisplay
     {
        public string labelvalue { get; set; }    
     }
 }

这是我的控制器

namespace MvcSampleApplication.Controllers
{
    public class LbelDisplayController : Controller
    {               
        public ActionResult Index()
        {
            labelsdisplay lbldisx = new labelsdisplay();
            string name = "ABC";
            lbldisx.labelvalue = name;       
            return View(lbldisx);
        }    
    }
}

这就是视图(强类型视图)

 @model MvcSampleApplication.Models.labelsdisplay
@{
    ViewBag.Title = "Index";
}    
<h2>Index</h2>
@using (@Html.BeginForm())
{     
    @Html.LabelFor(m=>m.labelvalue)    
}

我的问题是不能显示值("ABC"),而不是在视图中的标签中显示"labelvalue"。。。请任何人提出任何解决方案。。。关于这个。。。。

非常感谢。。

如何在来自视图的视图值中显示标签

要只显示值,可以使用

@Html.DisplayNameFor(m=>m.labelvalue)

或者,如果你想显示有值的标签元素,你可以使用

@Html.LabelFor(m=>m.labelvalue, Model.labelvalue)  

第一个参数是名称的值,第二个参数是标签的值。

更改

@Html.LabelFor(m=>m.labelvalue)

<label>@Model.labelvalue</label>

(或者,如果你不需要标签标签的话,可以省略它们)。

@-运算符将接受您提供的任何内容并将其转换为字符串,对该字符串进行HTML编码(除非您提供的是IHtmlString),并在输出中呈现编码后的字符串。

另一方面,Html.LabelFor旨在与表单模型一起使用。假设你有一个像这样的模型

public class PersonForm
{
  public string Firstname { get; set;}
  public string Lastname { get; set;}
}

以及一种接受这种形式作为论据的行动方法:

public ActionResult CreatePerson(PersonForm form){
  /* Create new person from form */
}

现在,在您的视图中,要显示Firstname字段的标签,请使用Html.LabelFor():

@model PersonForm
@Html.LabelFor(m => m.Firstname)

这将呈现类似<label for="Firstname">Firstname</label>的内容。如果您想渲染类似<label for="Firstname">Please enter firstname</label>的东西,您可以将属性附加到Firstname属性:

public class PersonForm
{
  [Display(Name = "Please enter firstname")]
  public string Firstname { get; set;}
  [Display(Name = "Please enter lastname")]
  public string Lastname { get; set;}
}

其中属性来自CCD_ 7命名空间。