【问题标题】:MVC3: Showing entity relationships in a viewMVC3:在视图中显示实体关系
【发布时间】:2011-09-16 13:56:36
【问题描述】:

我是 ASP.NET MVC 的新手,我有一个关于查看实体关系的问题。

假设我有一个名为“Person”的实体。这包含与人有关的常用数据(姓名、电子邮件等)。我也有一个“笔记”实体。在 EF 下,一个“Person”可以有多个“Notes”。

我有一个 Person 控制器,我可以在其中查看和执行对 Person 对象的 CRUD 操作。 我可以轻松地在视图中显示注释,但是允许用户从 Person 视图添加/编辑/删除这些注释的最佳方式是什么?我希望使用 AJAX 来做到这一点,而不是让用户移动到完全不同的页面来添加/编辑/删除注释。

提前致谢, 毒蛇人。

【问题讨论】:

    标签: ajax asp.net-mvc asp.net-mvc-3 razor


    【解决方案1】:

    当他们编辑注释时,弹出一个指向您要编辑的 URL 的 jQuery 对话框,或者在详细信息进入的页面上有一个单独的 Ajax.BeginForm()。当他们完成编辑时,调用一个方法来刷新笔记。

    所以: 1.在你的笔记网格(或其他) 每个注释都有一个名为“编辑”的编辑链接 此链接如下所示:

    这个实际上使用了'notes' :)

    http://www.iwantmymvc.com/dialog-form-with-jqueryui-and-mvc-3

    ASP.NET MVC | Problem about showing modal dialog using jQuery dialog widget

    ASP.NET MVC modal dialog/popup best practice

    还要注意多个链接的这种情况: MVC3 - Only first row link works well with Jquery Modal Dialog

    现在,您用于填充对话框的 url 将是例如 /注/编辑/10 需要注意的一件事 - jQuery 验证需要了解这些通过 ajax 加载到 DOM 中的新项目,因此在您的部分视图中,您需要告诉 jQuery 验证以包含新项目 - 我将稍作编辑以添加这个,必须从另一台机器上抓取它。

    【讨论】:

    • @Adam- 感谢您的回答。那里肯定有足够的东西让我开始。如果在笔记列表上方有一个添加按钮并单击它会在使用 AJAX 的页面上显示创建笔记表单而没有弹出窗口的情况呢?这容易实现吗?提前致谢。
    • 而不是使用 jQuery 对话框,我会简单地使用完全相同的局部视图来编辑注释,而不是将其加载到对话框中,只需使用 jQuery .ajax 调用将结果加载到div,然后显示 div。或者保持超级简单并使用 Ajax.ActionLink() 并指定 UpdateTargetId="yourDivId"
    • 您好,上面的解决方案效果很好,但我遇到了一些问题。我创建了一个控制器来处理人员和笔记的 CRUD。但是每个笔记都需要链接到一个人。创建新笔记时,如何从 Notes 控制器获取对 PersonID 的引用?提前致谢。
    • 由于您当前正在查看“人”,因此您必须更改指向您的操作方法的链接以进行创建操作。将此值设置为 DIV 中的隐藏字段,或者如果您调用一些“获取”操作来显示此 div 中的数据,请将其作为参数传递。当页面最初使用正确的人员 ID 加载时,您必须形成此 URL(即 actionlink)。从安全的角度来看,您可能希望在保存时验证此 personID 是否真实 - 可以轻松伪造当前人员作为隐藏字段。
    • 感谢您及时回复 Adam,但我无法理解您的回答。首先,我想在不使用 AJAX 的情况下让 Notes 部分工作。我有一个 Person 控制器(带有 CRUD 操作)和一个 Notes 控制器(带有 CRUD 操作)。在查看员工的详细信息时,我有一个指向笔记控制器的链接。此链接将 PersonID 传递给 Notes 控制器的 Index 操作 - 它采用此 personID 并列出与该人关联的所有便笺。在索引页面上,用户可以单击创建。您有使用隐藏字段/参数的示例吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 2011-01-14
    • 1970-01-01
    • 2020-03-08
    • 2016-09-23
    • 1970-01-01
    相关资源
    最近更新 更多