无法让Jquery.val在MVC4中运行

时间:2013-02-07 13:27:32

标签: jquery asp.net-mvc-4

我知道我在某个地方做错了什么,有人可以向我指出吗?

我有一个viewmodel,包含CurrentSection属性

public String CurrentSection {get; set;}

在视图中,我调用了viewmodel和jQuery

@model Application1.ViewModels.fooVM

@Scripts.Render("~/bundles/jquery")

然后我执行以下操作(适用于JSFiddle)

<script type="text/javascript">
    $(document).ready(function () {
        $("#CurrentSection").val('SecStoreIndex');
    });
</script>

@Html.EditorFor(X => X.CurrentSection)

使用EditorFor渲染为

<input id="CurrentSection" name="CurrentSection" type="hidden" value="" />

有谁可以指出我做错了什么?

2 个答案:

答案 0 :(得分:0)

确保使用jQuery的脚本放在包含jQuery:

@model Application1.ViewModels.fooVM

@Scripts.Render("~/bundles/jquery")

<script type="text/javascript">
    $(document).ready(function () {
        $("#CurrentSection").val('SecStoreIndex');
    });
</script>

@Html.EditorFor(X => X.CurrentSection)

另外,请确保_Layout.cshtml内部尚未进行@Scripts.Render("~/bundles/jquery")调用并获得重复的jQuery包含。

另外请记住,默认模板使用_Layout中的Scripts部分,因此如果您使用此默认模板创建了应用程序,则应该将脚本放在此部分中:

@model Application1.ViewModels.fooVM

@section Scripts {
    <script type="text/javascript">
        $("#CurrentSection").val('SecStoreIndex');
    </script>
}

@Html.EditorFor(X => X.CurrentSection)

另请注意,在这种情况下,我删除了$(document).ready包装器,因为默认模板将所有脚本放在DOM的末尾,就在结束</body>标记之前。

答案 1 :(得分:0)

我举起双手并拥有愚蠢。

我试图查看查看页面源的动态更改的值视图。我突然想到这没有出现。我发出警报,价值正在改变。

抱歉浪费你的时间。