Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将FirstName从模型返回到视图中的标签_C#_Html_Asp.net Mvc_Razor - Fatal编程技术网

C# 将FirstName从模型返回到视图中的标签

C# 将FirstName从模型返回到视图中的标签,c#,html,asp.net-mvc,razor,C#,Html,Asp.net Mvc,Razor,我试图将用户输入的名字作为标签呈现在视图中。我试过 @Html.DisplayFor(c => c.FirstName) @Html.LabelFor(c => c.FirstName) @Html.DisplayNameFor(c => c.FirstName) 最好的方法是什么?看起来很简单,我显然错过了什么?使用第二个变量,我得到的是变量名,而不是值 控制器代码: namespace TestProject.Controllers { public class

我试图将用户输入的名字作为标签呈现在视图中。我试过

@Html.DisplayFor(c => c.FirstName)
@Html.LabelFor(c => c.FirstName)
@Html.DisplayNameFor(c => c.FirstName)
最好的方法是什么?看起来很简单,我显然错过了什么?使用第二个变量,我得到的是变量名,而不是值

控制器代码:

namespace TestProject.Controllers
{
    public class ContactsController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            Contact contact = new Contact();

            return View(contact);
        }
    }
}
查看代码:

@model TestProject.Models.Contact

@{
    ViewBag.Title = "ContactSuccess";
    Layout = "~/Views/Shared/_Layout.cshtml";
}


<h2>Contact Has Been Successfully Added</h2>
<div class="imgContainer">
<img src="~/Content/Images/checkmark" />
</div>

@model.FirstName
如果不存在适当的模板,则输出相应显示模板的渲染结果,或将属性值作为字符串输出。虽然显示模板可能包含将呈现到页面的HTML,但它本身不生成HTML

@Html.LabelFor(m => m.Foo)
生成一个
标记,将
for
属性设置为将为属性生成的HTML id,其内容与从
HTML.DisplayNameFor
获得的内容相同

@Html.DisplayNameFor(m => m.Foo)
返回属性的显示名称(即假设属性附带属性
[display(name=“My Awesome Foo”)]
,“My Awesome Foo”将被输出),或者返回属性的名称“Foo”

-

因此,假设您需要类似于
名字的东西,那么您需要
Html.LabelFor
。如果你说的是像鲍勃这样的人。没有人能帮上忙。您必须严格使用:

<label>@Html.DisplayFor(m => m.FirstName)</label>
@Html.DisplayFor(m=>m.FirstName)
或者更简单,只是:

<label>@Model.FirstName</label>
@Model.FirstName

使用
Html.DisplayFor
的唯一原因是需要应用某种格式,例如
DateTime
属性,或者需要使用默认或自定义显示模板。对于
string
类型,没有默认的显示模板,因此
Html.DisplayFor
的结果将与直接输出属性相同,除非您创建了自定义模板。

是否可以从操作、视图和视图模型/模型中显示更多代码来解释您遇到的问题?这应该行。我的错误,复制了错误的行,但我已经尝试过了。它返回变量名。只需执行
@model.FirstName
即可将字段内容呈现到视图中。@CraigW.-也尝试过了,但现在加载失败,错误为异常详细信息:System.NullReferenceException:Object reference未设置为对象的实例。您是否实际将模型传递给视图?显示控制器操作中的代码。
<label>@Html.DisplayFor(m => m.FirstName)</label>
<label>@Model.FirstName</label>