Asp.net mvc 2 ASP.NET MVC 2-控制建议

Asp.net mvc 2 ASP.NET MVC 2-控制建议,asp.net-mvc-2,Asp.net Mvc 2,我是ASP.NETMVC2的新手,我需要一些关于在这种情况下使用最佳“控件”的建议。(我知道ASP.NET MVC并不真正使用服务器控件,但有许多附加组件,如) 这是我需要做的。我在数据库中有一个表,其中包含测试列表。我需要能够在视图中显示这些,并允许用户以某种方式(通过复选框或其他方式)选择它们 然后我需要能够确定选择了哪些项目 有人能告诉我实现这一目标的最佳方法吗 欢迎提供任何帮助/意见 TIA。如果您使用客户端功能,它最终将主要由两部分组成: 可视化HTML 函数式Javascript 我

我是ASP.NETMVC2的新手,我需要一些关于在这种情况下使用最佳“控件”的建议。(我知道ASP.NET MVC并不真正使用服务器控件,但有许多附加组件,如)

这是我需要做的。我在数据库中有一个表,其中包含测试列表。我需要能够在视图中显示这些,并允许用户以某种方式(通过复选框或其他方式)选择它们

然后我需要能够确定选择了哪些项目

有人能告诉我实现这一目标的最佳方法吗

欢迎提供任何帮助/意见


TIA。

如果您使用客户端功能,它最终将主要由两部分组成:

  • 可视化HTML
  • 函数式Javascript
  • 我会怎么做
  • 我将创建一个显示表的局部视图。如果需要重复使用,请将该部分放入
    Views/Shared
    文件夹中

  • 表的每个
    TR
    都会序列化该特定行中显示的对象的JSON。序列化可以通过编写自定义对象扩展方法来完成,因此您可以在之后对任何对象调用ToJson()

    <tr data='<%= this.Model[0].ToJson()'>
        <td class="actions"> <a href="#" class="action-select">Select</a> ... </td>
        <td>...</td>
        ...
    </tr>
    
  • 这样,您的行在被选中时将有额外的
    选择
    类,并且您的
    选择
    对象将始终有选定的行(或者更好地说是其对象),您可以随意使用

    附加说明 为什么我将
    选择设置为对象而不是数组?因为Javascript对象是一种关联数组,所以搜索特定元素比枚举其元素要快,因为它是一个普通数组。通过这种方式,我可以立即看到行是否被选中,并直接从中删除一个元素

    结果 这样,您将有一个可重用的表,可以放在不同的页面上(因此与用户控件相似)。但是,如果您需要在页面中添加几个这样的表,您必须稍微调整它们,以便客户端功能不会在不同的表之间混合数据

    $(function(){
        var selection = {};
        $(".actions a.action-select").click(function(evt){
            evt.preventDefault();
            var context = $(this);
            var rowObj = $.parseJSON(context.closest("tr[data]").toggleClass("selected").attr("data"));
    
            if (selection[rowObj.Id])
            {
                // deselect
                delete selection[rowObj.Id];
            }
            else
            {
                // select
                selection[rowObj.Id] = rowObj;
            }
    });