将onclick事件的值传递给控制器

时间:2016-06-22 21:00:12

标签: javascript asp.net-mvc

我有一个触发“删除”事件的按钮。如果用户决定继续,则此事件通过存储过程更新db条目。但是,用户只能将某个位置标记为已关闭(它们无法恢复为打开状态)。对于open,将位置的默认值声明为字符串status =“1”(并且在存储过程中将varchar(1)等于'1')。如果状态为“0”,则表示该位置已关闭。

我的问题是......如何才能使事件反映出我的控制器处理更新的变化?将变量声明为字符串是否重要?

按钮:

Id | sellid | buyid
 1 |      4 |     1
 2 |      6 |     2
 3 |      7 |     3
 4 |      8 |     1

JS:

<button type="submit" name="RemoveAccount" id="RemoveAccount" onclick="Confirm_delete()" value="@Model.Location.status">Remove</button>

1 个答案:

答案 0 :(得分:1)

只需在您的函数中添加if

function Confirm_delete(el) {
    if (el.value === '1') {
        el.value = '0';
        return confirm('Are you sure you want to remove this entry?');
    }
    return false;
}

正如@Alex在评论中提到的,请将onclick更改为return Confirm_delete(this)。注意我还添加了this作为参数,以明确我们想要获得对该按钮的引用。

请注意,由于您拥有type="submit"按钮,因此按钮应提交表单,这将导致服务器参与其中。如果您已正确映射模型,则页面重新呈现时@Model.Location.status的值应更改为“0”。