使用 JavaScript 调用重定向到具有 asp.net MVC 应用程序的操作

本文关键字:MVC net 应用程序 操作 asp 调用 JavaScript 重定向 使用 | 更新日期: 2023-09-27 18:34:33

>我有一个 asp.net 应用程序,我必须在其中执行操作单击表单的"提交"按钮:

脚本

<script>
  $(function(){
    function result(arr, identificateur,Pages) {
   var f1 = $('input[name="reception' + arr + '"]').val();
   var f2 = $('input[name="client' + arr + '"]').val();
   var f3 = $('input[name="cloture' + arr + '"]').val();
   var f4 = $('input[name="tag' + arr + '"]').val();
   location = "@Url.Content("/Pages/Index")?identificateur=" + identificateur + "&Pages=" + Pages + "&_reception=" + f1 + "&_cloture=" + f3 + "&_client=" + f2 + "&_tag=" + f4;
    }});
  </script>

然后,形式:

 <input type="submit" onclick="result(@i.ToString(),@Model[1][i].Id ,"1");" value="Enregistrer"/>

当我单击提交按钮时,没有任何反应,并且我没有重定向到操作Index

这个问题的原因是什么?我该如何解决它?

编辑

<input type="submit" id="Enregistrer" value="Enregistrer" data-arr="@i.ToString()" data-identificateur="@Model[1][i].Id"  />


<script>
    $(function () {
            $('#Enregistrer').click(function () {
            var self = $(this); // This is the submit button
            var identificateur = self.data('identificateur');
            var arr = self.data('arr');
            var f1 = $('input[name="reception' + arr + '"]').val();
            var f2 = $('input[name="client' + arr + '"]').val();
            var f3 = $('input[name="cloture' + arr + '"]').val();
            var f4 = $('input[name="tag' + arr + '"]').val();
             document.location.href = "@Url.Content("/Pages/Index")?identificateur=" + identificateur + "&Pages=1&_reception=" + f1 + "&_cloture=" + f3 + "&_client=" + f2 + "&_tag=" + f4;
        });
    });
  </script>

问题 :

  1. 重定向不起作用
  2. 只有在第一个tr我才能达到js功能

使用 JavaScript 调用重定向到具有 asp.net MVC 应用程序的操作

用引号传递string parameter ',如 'someVal' ,否则你会得到undefined error

更改以下行

 onclick="result(@i.ToString(),@Model[1][i].Id ,"1");"

onclick="result('@i.ToString()','@Model[1][i].Id' ,"1");"

将调用您的 JavaScript 函数,否则所有渲染的字符串都将被视为变量,如下所示,您将获得someval,someId undefined error

onclick="result(someval,someId ,"1");"

还可以使用 location.href 进行导航

我想我发现了两个错误:

location

应该是

location.href

第二个,尝试在函数前面加上javascript:

<input type="submit" onclick="javascript:result(@i.ToString(),@Model[1][i].Id ,"1");" value="Enregistrer"/>

<小时 />或者更好的是,使用带有html5 data-属性的不显眼的javascript。

<input type="submit" id="Enregistrer" value="Enregistrer" data-reception="@i.ToString()" />

使用以下 JavaScript:

$('#Enregistrer').click(function () {
    var self = $(this); // This is the submit button
    var reception = self.data('reception');   // Get the data from the attributes.
});

result()函数的定义放在$(function(){ /* put it here */ });里面,而不是简单的<script>

还要记住在onclick="result(@i.ToString(),@Model[1][i].Id ,"1");"中加上撇号而不是引号

当您传递""'时。

它应该是

onclick="result(@i.ToString(),@Model[1][i].Id ,'1');"