MVC @foreach和JavaScript混乱

时间:2016-08-04 13:28:06

标签: javascript asp.net-mvc twitter-bootstrap razor

我正在尝试在Bootstrap popover中创建一个按钮,该按钮在Razor killDatabase中运行时将Razor值传递给另一个名为foreach的JavaScript函数。代码生成一个可以选择的按钮列表,但我也希望能够点击一个按钮并删除其中一个选项。代码不会抛出任何错误,除了事实上任何删除按钮将始终删除最后一个元素,而不是它应该与之关联的元素之外,一切都能正常工作。我假设这是因为函数在onclick上调用,所以在那一点@str只是最后一个元素的名称,但我想知道是否有任何方法可以将该值存储为每个元素都独一无二?我尝试在foreach中添加一个JavaScript变量,但仍遇到同样的问题。

<div class="btn-group-vertical btn-block" data-toggle="buttons" id="btns">
    @foreach (var str in Model)
    {

    <div id="popover-content" hidden>
        Are you sure you would like to permanently delete this query from the database?<br />
        <button onclick="killDatabase('@str')" class="btn btn-primary btn-sm" style="float:left; margin-bottom: 10px;">Yes</button>
        <button class="btn btn-sm btn-primary" style="float:left;">No</button>
    </div>
        <label class="btn btn-default" style="height:auto">
            <div class="form-group" style="height:auto; padding-bottom: 10px;">
                <input type="radio" name="query" value="@str" /> 
                <span class="pull-left">@str</span>
                <span class="pull-right"> 
                <button class="btn btn-sm btn-danger" style="margin-top:-2px;" data-toggle="popover" title="Confirm Deletion" data-placement="bottom">
                <span class="glyphicon glyphicon-trash"></span></button></span>
            </div>
        </label>

    }
</div>

1 个答案:

答案 0 :(得分:0)

所以我要关闭这个问题,因为我对AJAX非常困惑。这就是它归结为:我有一个糟糕的AJAX调用,我试图在页面加载后初始化的popover上做事情,所以任何时候我都会尝试在弹出窗口中使用@str值,它只需要最近的价值。我已经将代码重新编写成更简化,更少错误的设计,现在它工作正常。感谢所有试图提供帮助的人