[英]ASP.NET MVC3: DisplayTemplates does not show model value (MVC3 Partial Page)
為了學習DisplayTemplates,我創建了一個“ String” DisplayTemplate,如下所示。 預計在模型的字符串值后添加單詞“ Hello”。 但是它僅顯示“ Hello”一詞。 我們如何糾正它?
注意:String.cshtml添加在Views \\ Contact \\ DisplayTemplates下
public class Contact
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
控制器
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>
字符串DisplayTemplate的Partail頁面(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>
編輯器模板
@Model TEST
顯示模板
Hello! @Model
<%= Html.Encode(Model) %> Hello!
是WebForms語法。 確保您不會混淆2個視圖引擎。 因此,將以下內容放入您的string.cshtml
Razor顯示模板中:
@Model Hello!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.