MVC3应用程序中客户端主 - 详细视图编辑器的建议

时间:2012-01-21 07:08:28

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

我正在研究基本的LMS,以便编辑课程模块的ChapterChapter通常会有一组Question个与之关联的对象,因此我的章节的编辑视图会有一个表格/网格问题。使用基本的默认视图模板,我的章节视图的Questions部分是一个包含每个问题的编辑,*详细信息*和删除链接的表格,以及“添加新”链接以添加新问题。

我需要能够添加和编辑问题而无需单独的问题视图,即编辑问题必须在章节视图上进行,反过来,每个问题可能有多个Option对象,作为问题时的选择是多种选择。

虽然我可以参与一个漫长而复杂的会话,开发一些客户端代码来为我做这一切,我希望有人可以告诉我,有什么现有的我可以使用相对较少的额外开发代码吗?

3 个答案:

答案 0 :(得分:2)

没有任何开箱即用,但您可以使用模型窗口,它允许您编辑现有问题,您可以使用添加按钮绑定jQuery事件,该按钮注入HTML以添加带有新问题的行。

当您动态添加/删除问题时,您必须确保维护行的name属性,以便模型绑定器可以在提交时填充模型中的所有问题。

答案 1 :(得分:2)

Telerik开发了一套漂亮的ASP.NET MVC controls。其中一个是具有Ajax编辑支持的Grid控件。可能的网格编辑模式(也适用于新行,在您的情况下代表问题)是“在线”和“在形式”。我认为,第一个选项符合您的要求“能够在不进入单独的问题视图的情况下添加和编辑问题”。有关演示,请参阅http://demos.telerik.com/aspnet-mvc/Grid/EditingAjax

关于许可证:根据您的选择,商业许可证非常昂贵(999美元),但他们也有open source license,其中我不知道详细信息。

P.S。我不是Telerik员工,我只喜欢他们的产品; - )

答案 2 :(得分:1)

如果我理解你要做的事情,我相信这是在ASP.MVC中编程的一个相对简单的功能。不要使用MVC Controls Toolkit或Telerik Controls,如您所述,这对于问题来说太过分了。连接第三方控件与使用计划旧的jQuery对控制器进行ajax调用需要更长的时间。

根据您的问题,我假设您的用户界面看起来像这样......

Example UI

使用jQuery对Controller Actions进行ajax调用。弹出一个jquery模式对话框,这样您就不必离开问题列表页面了。通过使用来自Answer Controller的jQuery和jsonResults动态创建html,获取问题的现有“可能答案”。根据Phil Haack 2008年博客文章Model Binding to a List提交编辑的“可能的答案”给你的控制器。它应该需要一个小时的工作顶部。祝你好运!