2013-02-26 36 views

回答

26

有此幫手6 overloads

  1. @Html.EditorForModel()

    呈現~/Views/Shared/EditorTemplates/TypeName.cshtml模板,其中TypeName是您的視圖模型的確切類型的名稱。如果您的視圖模型是一個集合(即IEnumerable<TypeName>,IList<TypeName>,TypeName[],...),ASP.NET MVC將自動爲該集合的每個元素渲染相應的編輯器模板。您不需要在視圖中編寫任何循環來實現這一點。它由框架爲您處理。

  2. @Html.EditorForModel("templatename")

    呈現的~/Views/Shared/EditorTemplates/templatename.cshtml不是依靠常規

  3. @Html.EditorForModel(new { Foo = "bar" })

    渲染默認編輯模板,但附加視點數據傳遞給它,你可以用ViewData["foo"]ViewBag.Foo內使用

  4. @Html.EditorForModel("templatename", new { Foo = "bar" })

    呈現的~/Views/Shared/EditorTemplates/templatename.cshtml不是依靠慣例和附加視圖數據傳遞給它,你可以用ViewData["foo"]ViewBag.Foo

  5. @Html.EditorForModel("templatename", "fieldprefix")

    內使用渲染的~/Views/Shared/EditorTemplates/templatename.cshtml不是依靠慣例和修改這意味着,例如,如果您在此模板中撥打@Html.TextBoxFor(x => x.FooBar),您將獲得name="fieldprefix.FooBar"而不是name="FooBar"

  6. @Html.EditorForModel("templatename", "fieldprefix", new { Foo = "bar" })

    呈現的~/Views/Shared/EditorTemplates/templatename.cshtml不是依靠慣例和修改導航背景下,這個模板中,這意味着,例如,如果你有這個模板內的@Html.TextBoxFor(x => x.FooBar)電話,你會得到name="fieldprefix.FooBar",而不是name="FooBar"。它還傳遞了一個附加視圖數據給它,你可以用ViewData["foo"]ViewBag.Foo

備註內使用:模板系統將首先查找在~/Views/XXX/EditorTemplates模板,其中XXX是爲這個視圖和控制器的名稱如果它沒有發現它會查看~/Views/Shared/EditorTemplates。這可以允許更精細地調整模板。您可以在共享文件夾中擁有默認模板,可以根據每個控制器重寫該模板。

相關問題