[英]ASP.NET MVC LIST and Create in same view
好的我有一個View強制類型作為MyObject的集合
@model IEnumerable<ViewModels.MyObject>
我遍歷集合以創建對象列表。
在同一頁面上,我需要創建表單來添加新的MyObject。
有沒有辦法沿着lambda表達式使用Html幫助器來創建從我的模型強類型的元素?
或者最好將此頁面的Form部分加載為另一個部分視圖,類型為MyObject(不是集合)?
您可以使用兩個視圖模型創建視圖模型作為屬性:
class ListCreateViewModel {
ListViewModel ListViewModel { get; set; }
CreateViewModel CreateViewModel { get; set; }
}
然后你可以使用
Html.RenderPartial("Create", Model.CreateViewModel);
您的部分將CreateViewModel
作為模型。
您還可以制作完全獨立的視圖和模型並調用:
Html.RenderAction("Create", "Controller");
RenderAction
表現為新請求,視圖在不同的上下文中呈現。
我遍歷集合以創建對象列表。
你為什么要循環? 在一個視圖中循環是丑陋的。 您可以使用編輯器模板:
@model IEnumerable<ViewModels.MyObject>
@using (Html.BeginForm())
{
@Html.EditorForModel()
<input type="submit" value="Go!" />
}
在相應的編輯器模板中,將為模型集合的每個項目調用( ~/Views/Shared/EditorTemplates/MyObject.cshtml
):
@model ViewModels.MyObject
<div>
@Html.LabelFor(x => x.Prop1)
@Html.TextBoxFor(x => x.Prop1)
@Html.ValidationMessageFor(x => x.Prop1)
</div>
<div>
@Html.LabelFor(x => x.Prop2)
@Html.TextBoxFor(x => x.Prop2)
@Html.ValidationMessageFor(x => x.Prop2)
</div>
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.