我有一个标签,我需要在该标签中显示值,并且我已在控制器中为该标签指定了值。
这是模型
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”... 任何人都会提出任何解决方案......就此而言......
非常感谢..
答案 0 :(得分:4)
要仅显示该值,您可以使用
@Html.DisplayNameFor(m=>m.labelvalue)
或者,如果要显示带有值的label元素,可以使用
@Html.LabelFor(m=>m.labelvalue, Model.labelvalue)
第一个参数是名称的值,第二个参数是标签的值。
答案 1 :(得分:3)
更改
@Html.LabelFor(m=>m.labelvalue)
到
<label>@Model.labelvalue</label>
(如果您不需要,请省略标签标签)。
@ -operator将接受你提供的任何内容并将其转换为字符串,HTML-encode该字符串(除非你给它的是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;}
}
其中属性来自System.ComponentModel.DataAnnotations
命名空间。