【发布时间】:2011-05-18 18:00:51
【问题描述】:
我是 MVC 的新手,所以我不确定这里最好的方法是什么。
我有一个包含多个这样的集合的视图模型:
public class MainViewModel{
public List<AViewModel> A { get; set; }
public List<BViewModel> B {get; set; }
...}
我正在使用 Steve Sanderson 的方法 here 将项目动态添加到集合中,只要子项目在主视图上可编辑,它就可以正常工作。
我遇到的问题是返回一个带有编辑链接的只读列表,该链接将在弹出对话框中打开要编辑的详细信息。
由于这些项目可能是新添加的,我无法使用 ID 属性从控制器返回部分视图。看来我必须像这样在隐藏的 div 中呈现编辑器:
<div class="AEditorRow">
@using (Html.BeginCollectionItem("A"))
{
@Html.DisplayFor(l => l.ID)
@Html.DisplayFor(l => l.Name)
@Html.DisplayFor(l => l.Code)
<a href="#" onclick="$('#detailsPopup').html($(this).parent().find('.ADetails').html() ).dialog()">edit</a> <text>|</text>
<a href="#" class="deleteRow">delete</a>
<div class="ADetails" style="display: none">
@using (Html.BeginForm("EditA", "Controller"))
{<fieldset>
<legend>Location</legend>
@Html.HiddenFor(model => model.ID)
<div class="editor-label">
@Html.LabelFor(model => model.Code)
</div>
有人知道更好的方法吗?
【问题讨论】:
标签: asp.net-mvc-3