jQuery的值始终为空

jQuery的值始终为空,jquery,asp.net-mvc,asp.net-mvc-4,Jquery,Asp.net Mvc,Asp.net Mvc 4,我已经做过很多次了,这很容易,但是这里有点不对劲,我就是看不出问题所在。从该下拉列表中进行选择时,.值始终为空。我知道得更清楚。但我看不出问题所在。有人看到这段代码有问题吗 在my _Layout.cshtml中,我调用了一个返回部分视图的控制器操作: @{Html.RenderAction("LanguageListPartial", "Account");} 部分观点: @Html.DropDownListFor( x => x.SelectedLanguage,

我已经做过很多次了,这很容易,但是这里有点不对劲,我就是看不出问题所在。从该下拉列表中进行选择时,.值始终为空。我知道得更清楚。但我看不出问题所在。有人看到这段代码有问题吗

在my _Layout.cshtml中,我调用了一个返回部分视图的控制器操作:

@{Html.RenderAction("LanguageListPartial", "Account");} 
部分观点:

@Html.DropDownListFor(
    x => x.SelectedLanguage,
    Model.Languages,
    new { @class = "form-control }
)
下拉菜单将显示“精细”:

HTML:

jQuery在更改时调用:

试试这个:

<script type="text/javascript">
    $(document).ready(function () {
        $(function () {
            $('#SelectedLanguage').on('change', function () {
                var a = $(this).val(); 
                $('#test').load("/Account/TestPartial/" + a);
                return false;
            });
        });
    });
 </script>

还有一个建议,试试ajax asyn更新

<script type="text/javascript">

        $(function () {
            $('#SelectedLanguage').on('change', function () {
                var a = $(this).val(); 
                $.get("~/Account/TestPartial/"+a, function(data){
                 $("#placeholder").html(data);// update existing div
                }):
            });

    });
 </script>

使用.val而不是.valuesHabeway,起初我尝试了.val.:然后确保你有一个id为test的元素,不管是谁,否决票都很奇怪。似乎是一个合法的问题-代码对我来说似乎没问题,但只是想看看是否有其他人发现了问题。在HTML结构中,您将.ready函数放在哪里?这可能是其他地方的问题吗?一切正常,无法测试部分负载,但我从您的选择列表中获得正确的值,运行小提琴并检查您的控制台:我只是在学习MVC,所以可能存在一些异常。我会通过MVC社区。谢谢你,马克。select在局部视图中呈现,脚本在主布局中,但偶数激发,因此我不明白为什么该值不可用。还有一件事,可以尝试使用ajax异步来呈现局部。。我再给你一个答案……我自己刚开始和mvc合作。是的,你试了一下,希望你的参与能让我开怀大笑。我非常感谢你的帮助,至少从你的回答和评论中学到了很多东西;是的,这些评论毫无用处,所以我把它们清理干净了。记录在案,如果答案是不同的,那么留下多个答案没有什么错。通过这段代码跟踪,仍然是a=null。我认为@sahbeewah已经开始关注.ready.的位置,这不是问题所在,但是您没有在DOM ready中捕捉到DOM ready$document.readyfunction{与$function{完全相同请参见:
<script type="text/javascript">
    $(document).ready(function () {
        $(function () {
            $('#SelectedLanguage').on('change', function () {
                var a = $(this).val(); 
                $('#test').load("/Account/TestPartial/" + a);
                return false;
            });
        });
    });
 </script>
<script type="text/javascript">

        $(function () {
            $('#SelectedLanguage').on('change', function () {
                var a = $(this).val(); 
                $.get("~/Account/TestPartial/"+a, function(data){
                 $("#placeholder").html(data);// update existing div
                }):
            });

    });
 </script>