ASP.NET MVC3: DisplayTemplates не показывает значение модели (частичная страница MVC3) - PullRequest
1 голос
/ 20 февраля 2012

Для изучения DisplayTemplates я создал «String» DisplayTemplate, как указано ниже.Ожидается добавление слова «Hello» после строкового значения модели.Но это показывает только слово «Привет».Как мы можем это исправить?

Примечание: String.cshtml добавляется в Views \ Contact \ DisplayTemplates

public class Contact
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}

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);

    }

}

Подробное представление

@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>

Страница Partail для String DisplayTemplate (String.cshtml)

<%= Html.Encode(Model) %> Hello!

@ 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>

EditorTemplate

@Model TEST

DisplayTemplate

Hello! @Model

enter image description here

1 Ответ

5 голосов
/ 20 февраля 2012

<%= Html.Encode(Model) %> Hello! - это синтаксис WebForms. Убедитесь, что вы не путаете 2 движка просмотра. Поэтому добавьте в ваш шаблон отображения string.cshtml Razor следующее:

@Model Hello!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...