ASP.NET MVC3:DisplayTemplates不显示模型值(MVC3 Partial Page)

LCJ*_*LCJ 1 .net c# asp.net asp.net-mvc asp.net-mvc-3

为了学习DisplayTemplates,我创建了一个"String"DisplayTemplate,如下所示.期望在模型的字符串值之后附加单词"Hello".但它只显示"你好"这个词.我们如何纠正它?

注意:在Views\Contact\DisplayTemplates下添加String.cshtml

public class Contact
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

CONTROLLER

public class ContactController : Controller
{

    // GET: /Contact/Details/5
    public ActionResult Details(int id)
    {
        Contact myContact = new Contact();
        myContact.FirstName = "Lijo";
        myContact.LastName = "Cheeran";
        myContact.Age = 26;

        return View(myContact);

    }

}
Run Code Online (Sandbox Code Playgroud)

详细视图

@model MyDisplayAndEditorTemplateTEST.Contact

<fieldset>
<legend>Contact</legend>

<div class="display-label" style="font-weight:bold" >FirstName</div>
<div class="display-field">
    @Html.DisplayFor(model => model.FirstName)
</div>

<div class="display-label" style="font-weight:bold">LastName</div>
<div class="display-field">
    @Html.DisplayFor(model => model.LastName)
</div>

<div class="display-label" style="font-weight:bold">Age</div>
<div class="display-field">
    @Html.DisplayFor(model => model.Age)
</div>
Run Code Online (Sandbox Code Playgroud)

String DisplayTemplate的部分页面(String.cshtml)

<%= Html.Encode(Model) %> Hello!
Run Code Online (Sandbox Code Playgroud)

@Darin.对于编辑器模板,我使用了@ Html.EditorFor(model => model.FirstName).它仍然是一个标签,如下所示.我们如何更改它以将其作为文本框?

Details.cshtml

@model MyDisplayAndEditorTemplateTEST.Contact

<fieldset>
<legend>Contact</legend>

<div>FirstName</div>
<div>
     @Html.EditorFor(model => model.FirstName)
</div>

<div class="display-label" style="font-weight:bold">LastName</div>
<div class="display-field">
    @Html.DisplayFor(model => model.LastName)
</div>
Run Code Online (Sandbox Code Playgroud)

EditorTemplate

@Model TEST
Run Code Online (Sandbox Code Playgroud)

DisplayTemplate

Hello! @Model
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Dar*_*rov 5

<%= Html.Encode(Model) %> Hello!是WebForms语法.确保您不会混淆2个视图引擎.所以将以下内容放入string.cshtmlRazor显示模板中:

@Model Hello!
Run Code Online (Sandbox Code Playgroud)