2

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

这是模型

 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”......有人请提出任何解决方案......关于这个......

非常感谢..

4

2 回答 2

4

要仅显示值,您可以使用

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

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

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

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

于 2013-08-01T04:12:51.763 回答
3

改变

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

<label>@Model.labelvalue</label>

(或省略标签标签,如果您不需要它们)。

@-operator 将获取您提供的任何内容并将其转换为字符串,对该字符串进行 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;}
}

其中属性来自System.ComponentModel.DataAnnotations命名空间。

于 2013-08-01T04:07:48.787 回答