Asp.net mvc 在MVC表单中过滤下拉列表时如何处理验证?

Asp.net mvc 在MVC表单中过滤下拉列表时如何处理验证?,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我有一个有两个下拉列表的表单。第一个过滤第二个。因此,当从第一个下拉列表中进行选择时,我需要回发到控制器以重新填充第二个下拉列表。由于第二个下拉列表是必填字段,因此每次从第一个下拉列表自动回写时,都会触发验证。我正在使用JS做这个“自动回发” $('#StdThemePropertyId')。更改(函数(){ $(this.parents('form').submit(); }); 请给出解决此问题的建议方法 谢谢。您的问题是在onchange函数中提交表单。如果我是正确的,它会自动验证表单

我有一个有两个下拉列表的表单。第一个过滤第二个。因此,当从第一个下拉列表中进行选择时,我需要回发到控制器以重新填充第二个下拉列表。由于第二个下拉列表是必填字段,因此每次从第一个下拉列表自动回写时,都会触发验证。我正在使用JS做这个“自动回发”


$('#StdThemePropertyId')。更改(函数(){
$(this.parents('form').submit();
});
请给出解决此问题的建议方法


谢谢。

您的问题是在onchange函数中提交表单。如果我是正确的,它会自动验证表单

您的问题是在onchange函数上提交表单。如果我是正确的,它会自动验证表单

您不应该回发整个表单。您应该进行AJAX调用以获取值并填充第二个dropdownlist。这会解决你的问题。

你不应该把整个表格都发回。您应该进行AJAX调用以获取值并填充第二个dropdownlist。它会解决您的问题。

您应该尝试使用ajax,这可能会有所帮助

<script type="text/javascript">

        $('#StdThemePropertyId').change(

            $.ajax({
                url: 'url.php',
                success: function(data) {
                    $('#StdThemePropertyId').html(data);
                }
            });
        }

    });
    </script>

$('#StdThemePropertyId')。更改(
$.ajax({
url:'url.php',
成功:功能(数据){
$('#StdThemePropertyId').html(数据);
}
});
}
});

“data”是在url.php中解析后的返回值。希望这有帮助。:)

您应该尝试使用ajax,这可能会有所帮助

<script type="text/javascript">

        $('#StdThemePropertyId').change(

            $.ajax({
                url: 'url.php',
                success: function(data) {
                    $('#StdThemePropertyId').html(data);
                }
            });
        }

    });
    </script>

$('#StdThemePropertyId')。更改(
$.ajax({
url:'url.php',
成功:功能(数据){
$('#StdThemePropertyId').html(数据);
}
});
}
});

“data”是在url.php中解析后的返回值。希望这有帮助。:)

你应该有这样的东西:

控制器:

public ActionResult YourActionMethod(int id) 
{ 
  return Json(new {foo="AAA", bar="BBB"});
}
<script type="text/javascript">

    $('#StdThemePropertyId').change(

        $.getJSON("../YourActionMethod", {
            id: someId
           }, function(data) {
                alert(data.foo);
                alert(data.bar);
               //here fill in your dropdownlist
           });
    }
});
</script>'
Javascript:

public ActionResult YourActionMethod(int id) 
{ 
  return Json(new {foo="AAA", bar="BBB"});
}
<script type="text/javascript">

    $('#StdThemePropertyId').change(

        $.getJSON("../YourActionMethod", {
            id: someId
           }, function(data) {
                alert(data.foo);
                alert(data.bar);
               //here fill in your dropdownlist
           });
    }
});
</script>'

$('#StdThemePropertyId')。更改(
$.getJSON(“../YourActionMethod”{
id:someId
},函数(数据){
警报(data.foo);
警报(data.bar);
//在这里填写您的下拉列表
});
}
});
'

希望有帮助

你应该有这样的东西:

控制器:

public ActionResult YourActionMethod(int id) 
{ 
  return Json(new {foo="AAA", bar="BBB"});
}
<script type="text/javascript">

    $('#StdThemePropertyId').change(

        $.getJSON("../YourActionMethod", {
            id: someId
           }, function(data) {
                alert(data.foo);
                alert(data.bar);
               //here fill in your dropdownlist
           });
    }
});
</script>'
Javascript:

public ActionResult YourActionMethod(int id) 
{ 
  return Json(new {foo="AAA", bar="BBB"});
}
<script type="text/javascript">

    $('#StdThemePropertyId').change(

        $.getJSON("../YourActionMethod", {
            id: someId
           }, function(data) {
                alert(data.foo);
                alert(data.bar);
               //here fill in your dropdownlist
           });
    }
});
</script>'

$('#StdThemePropertyId')。更改(
$.getJSON(“../YourActionMethod”{
id:someId
},函数(数据){
警报(data.foo);
警报(data.bar);
//在这里填写您的下拉列表
});
}
});
'

希望有帮助

在这种情况下,Json格式应该如下所示:

控制器

public ActionResult YourActionMethod(int id) 
{ 
   return Json(new {
               yourTitle="AAA", 
               yourValue="BBB"
         });
}
JS

<script type="text/javascript">

    $('#StdThemePropertyId').change(
      $.getJSON("../YourActionMethod", function(data){
        $.each(data, function(yourTitle, yourValue) {
          $('#yourDropDownList').append(
            $('<option></option>').val(yourTitle).html(yourValue)
          );
        });
      });
    });

</script>

$('#StdThemePropertyId')。更改(
$.getJSON(“../YourActionMethod”,函数(数据){
$.each(数据、函数(标题、值){
$('yourDropDownList')。追加(
$('').val(yourTitle).html(yourValue)
);
});
});
});

如果这对您有帮助,请标记为正确

在这种情况下,Json格式应该如下所示:

控制器

public ActionResult YourActionMethod(int id) 
{ 
   return Json(new {
               yourTitle="AAA", 
               yourValue="BBB"
         });
}
JS

<script type="text/javascript">

    $('#StdThemePropertyId').change(
      $.getJSON("../YourActionMethod", function(data){
        $.each(data, function(yourTitle, yourValue) {
          $('#yourDropDownList').append(
            $('<option></option>').val(yourTitle).html(yourValue)
          );
        });
      });
    });

</script>

$('#StdThemePropertyId')。更改(
$.getJSON(“../YourActionMethod”,函数(数据){
$.each(数据、函数(标题、值){
$('yourDropDownList')。追加(
$('').val(yourTitle).html(yourValue)
);
});
});
});

如果这对您有帮助,请标记为正确

是的,没错。那我们该怎么办呢?目前,我正在尝试捕获是否已使用该按钮,如果已使用,则验证并保存。然而,可能有更好、更推荐的方法?是的,这是正确的。那我们该怎么办呢?目前,我正在尝试捕获是否已使用该按钮,如果已使用,则验证并保存。但是,可能有更好、更推荐的方法?谢谢。我实际上使用的是ASP.NETMVC。然而,这个概念无疑是相似的。我可以麻烦您提供更多关于“数据”的详细信息吗。很明显,在剃须刀上举个例子会很有帮助。谢谢你。我实际上使用的是ASP.NETMVC。然而,这个概念无疑是相似的。我可以麻烦您提供更多关于“数据”的详细信息吗。很明显,在剃须刀上举个例子会很有帮助。谢谢你。我的JS没有它应有的强大。请您填写“//这里填写您的下拉列表”位。谢谢,谢谢你。我的JS没有它应有的强大。请您填写“//这里填写您的下拉列表”位。谢谢