我有例如一類:我可以在MVC3中爲同一個類使用多個編輯器模板嗎?
public class Book
{
public int BookId { get; set; }
public string BookName { get; set; }
public string Description { get; set; }
}
和編輯模板:
@model MySimpleEditorTemplate.Models.Book
@Html.DisplayFor(p => p.BookId) @Html.EditorFor(p => p.BookId)
@Html.DisplayFor(p => p.BookName) @Html.EditorFor(p => p.BookName)
@Html.DisplayFor(p => p.Description) @Html.EditorFor(p => p.Description)
我可以使用編輯器模板是這樣的:
@Html.EditorFor(model => model.Book)
但是如果我想要什麼有兩個編輯器模板或兩個顯示模板,併爲同一個類使用一個或另一個?這可能嗎?
我想我明白了。這是什麼意思關於「控制器的editortemplates文件夾」。我想知道我應該在哪裏存儲我的編輯模板,我從來沒有聽說過這個位置?我是否可以保留相同的名稱,但在不同的控制器editortemplates文件夾中有不同的模板? –
您可以爲任何你想要的模型製作模板。例如,對於名爲'MyModel'的模型,只需創建一個名爲MyModel.cshtml的文件。然後,當你調用EditorFor()時,MVC首先在\ Views \ CurrentController \ EditorTemplates \上查找它,如果沒有找到它,它將在\ Views \ Shared \ EditorTemplates \上查找,最後,如果沒有找到,它會顯示默認值。 DisplayFor()'helper可以做同樣的事情,但是文件夾是DisplayTemplates \。 – Joao
當我說模型時,它可以是任何類的類型。例如,你可以爲'string'做到這一點。只需創建一個string.cshtml文件。現在,每次使用'EditorFor(model => model.MyStringProperty)時,它都會使用您的模板,而不是默認模板。 – Joao