Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP.NET MVC将div中跨度的innerHTML文本传递给控制器_Javascript_Html_Asp.net Mvc_Razor - Fatal编程技术网

Javascript ASP.NET MVC将div中跨度的innerHTML文本传递给控制器

Javascript ASP.NET MVC将div中跨度的innerHTML文本传递给控制器,javascript,html,asp.net-mvc,razor,Javascript,Html,Asp.net Mvc,Razor,我目前正在尝试从跨度中获取字符串,并将它们存储在javascript字符串变量中。接下来,当我单击搜索按钮时,我试图传递数据,该按钮是HTML.ActionLink。 为了简单起见,我只添加了相关的代码位 这是我的视图中的代码: 这是javascript部分: <script type="text/javascript"> $(document).ready(function () { $(document).on('click', '#search', function (

我目前正在尝试从跨度中获取字符串,并将它们存储在javascript字符串变量中。接下来,当我单击搜索按钮时,我试图传递数据,该按钮是HTML.ActionLink。 为了简单起见,我只添加了相关的代码位

这是我的视图中的代码: 这是javascript部分:

<script type="text/javascript">
$(document).ready(function () {
    $(document).on('click', '#search', function () {
        var tags = '';
        var spans = document.getElementById('imaginary_container').getElementsByTagName('span'),
        obj = {};

        for (var i = 0, l = spans.length; i < l; i++) {
            obj[spans[i].id] = spans[i].textContent || spans[i].innerText;
            tags.concat(obj[spans[i].id]);
        }

        // save private tags

    })
});

$(文档).ready(函数(){
$(文档).on('单击','搜索'),函数(){
var标签=“”;
var span=document.getElementById('virtual_container').getElementsByTagName('span'),
obj={};
对于(变量i=0,l=span.length;i

然后我在下面有一个div按钮:

<div class="buttonBox">
            @Html.ActionLink("Search",
                "SearchAll",
                "Search",
                new { tags = ViewBag.Tags },
                new
                {
                    @class = "btn btn-primary",

                }
                )
        </div>

    </div>

@ActionLink(“搜索”,
“搜索所有”,
“搜索”,
新建{tags=ViewBag.tags},
新的
{
@class=“btn btn primary”,
}
)
我研究过这个问题,人们说这不是不可能的,就是有过时的答案。然而,如果我走错了方向,有人能指出实现这一点的方法吗

更多背景: 应用程序在首页上显示标记,您可以单击该标记并将其移动到另一个div作为一个span,我需要将所选标记的数据作为字符串发送回,以便我可以在另一页上查询响应显示链接到这些标记的文件和链接

更新:

我已经添加了一个带有post操作和隐藏输入的表单,在其中存储 跨度的值

处理标记重新定位的javascript函数现在也可以使用了 将跨距的内部文本添加到我的隐藏输入中

 $(document).ready(function () {

        $(document).on('click', '.delete-button', function () {

            var newSpan = document.createElement('span');
            document.getElementById('imaginary_container').appendChild(newSpan);
            newSpan.innerHTML = $(this).html();
            var tags = $("#tags");
            var tags = "";
            var spans = document.getElementById('imaginary_container').getElementsByTagName('span'),
            obj = {};
            tags += spans[0].innerText;
            for (var i = 1, l = spans.length; i < l; i++) {
                tags += ',' + spans[i].innerText;
            }

            $("#tags").val(tags);

            $(this).remove();
        })
    });
$(文档).ready(函数(){
$(文档)。在('单击','上。删除按钮',函数(){
var newSpan=document.createElement('span');
document.getElementById('virtual_container').appendChild(newSpan);
newSpan.innerHTML=$(this.html();
变量标记=$(“#标记”);
var标签=”;
var span=document.getElementById('virtual_container').getElementsByTagName('span'),
obj={};
标记+=跨度[0]。innerText;
对于(变量i=1,l=span.length;i
和一个简单的隐藏输入:

<input type="hidden" id="tags" name="Tags" />


现在这个很好用

你是想制作一个类似于或的列表框吗?我已经添加了一个带有首页设计的图像,如果有帮助的话,可以在这里找到该图像:你要么需要一个生成GET的
,然后你将有一个
在拖放时移到表单中,它将使用
字符串[]发回一个方法标记
参数。或者您需要构建url(看起来像
/Search/SearchAll?tags=someTag&tags=anotherTag&tags=…)
等等(您可以利用来帮助构建url)谢谢@StephenMuecke,我已经尝试了第一种方法,我制作了一个带有post操作的表单,在表单中我有一个隐藏的输入(注意,不需要在标记重新定位时移动它),我使用标记移动javascript函数将值附加到隐藏的输入中。