如何在来自视图的视图值中显示标签
本文关键字:视图 显示 标签 | 更新日期: 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命名空间。