我是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>
有谁知道更好的方法来做到这一点?