【问题标题】:ASP.NET MVC 3 - edit items dynamically added to model collection in jquery dialogASP.NET MVC 3 - 在 jquery 对话框中编辑动态添加到模型集合的项目
【发布时间】: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


    【解决方案1】:

    在解决此问题一段时间后,我现在能够找到适合我的演练。

    http://jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3

    我认为这是为 MVC3 完成动态添加的嵌套集合对象最适用的技术。我发现的大多数其他建议都是针对 MVC2 或 MVC1 的,而且似乎 MVC 的每次迭代都是完成此更改的最佳方式。

    希望这对你有用。

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 2011-09-02
      • 1970-01-01
      • 2020-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多