Javascript使用onclick元素更新razor变量

时间:2014-10-07 14:20:36

标签: javascript model-view-controller

是否可以使用元素上的onclick来更新剃刀变量?

MVC VIEW:

@{
    string iconNumber = "1";
}

<button type="submit" onclick="@iconNumber = '2'; alert('@iconNumber');"></button>

控制台错误: 未捕获的ReferenceError:赋值中的左侧无效

感谢

2 个答案:

答案 0 :(得分:0)

我无法从您的评论中了解您尝试更新剃刀变量的目的,但如果您真的想要将您的剃刀变量从1更新为2(来自您的问题),那么我建议尝试以下

     @{
        int iconNumber = 1;
      }

然后,

       <button type="submit" onclick="@(iconNumber++); alert('@iconNumber');"></button>

希望它有所帮助......但是请注意,iconNumber将在每次单击按钮时递增。所以,如果您展示更多代码,我可以帮助您

答案 1 :(得分:0)

当第二天读到这个问题时,人们会认为我受到毒品的影响。

我想出了一个只使用javascript变量的更好的解决方案:

查看:

<script>var iconNumber = 0;</script>

@using (Ajax.BeginForm("", "",
                    new AjaxOptions
                    {
                        OnBegin = "$('#iconElement' + iconNumber).attr('class', 'fa fa-spinner fa-spin');",
                        HttpMethod = "POST"
                    }))
    {
Html input here

<button type="submit" class="btn btn-danger" id="IconElement1" onclick="iconNumber = 1;">
<button type="submit" class="btn btn-danger" id="IconElement2" onclick="iconNumber = 2;">
<button type="submit" class="btn btn-danger" id="IconElement3" onclick="iconNumber = 3;">

}

我现在可以在提交后禁用表单以防止多个请求。因为我没有直接在onclick中启动微调器,所以我不必禁用按钮,(微调器不会启动)。