代码之家  ›  专栏  ›  技术社区  ›  Tony

ASP.NET MVC将来自多个具有相同名称的<img>的数据传递给控制器

  •  0
  • Tony  · 技术社区  · 15 年前

    在我看来,我有许多这样的<.img/>:

    <img id="img1" name="myName" alt='aa' href='..' />
    <img id="img2" name="myName" alt='bb' href='..' />
    <img id="img3" name="myName" alt='cc' href='..' />
    

    问题是,有没有可能 alt 所有<.img/>的属性 name 并将其作为示例传递给控制器 string[] ? 第一个想法是使用jQuery将所有属性作为一个字符串连接起来,然后将其传递给控制器,但是我想知道是否有其他方法

    3 回复  |  直到 15 年前
        1
  •  1
  •   Darin Dimitrov    15 年前

    您可以使用jquery获取所有alt值,并将它们作为AJAX请求发送到服务器:

    var alts = $('img[name=myName]').map(function(i, item) {
        return $(item).attr('alt');
    });
    
    $.ajax({
        url: '/',
        data: { myName: alts.toArray() },
        traditional: true,
        success: function(result) {
            alert(result);            
        }
    });
    
        2
  •  1
  •   Çağdaş Tekin    15 年前

    你说得对。必须使用客户端脚本将这些值发送到服务器。

    没有其他方法可以在服务器端捕获它们。

        3
  •  1
  •   ZaChickster    15 年前

    只有两种方法可以将数据发送回服务器:查询字符串和表单POST值。如果要将这些alt标记发送回服务器,则必须:

    • 使用JavaScript从图像中提取alt信息。
    • 对于每个图像,在页面上的表单内创建一个隐藏的输入。
    • 每个隐藏的输入都需要相同的名称,每个图像都有一个值。
    • 通过JavaScript提交表单。
    • MVC的绑定会将每个同名的隐藏输入放入一个字符串[]中,您可以在控制器中使用它。