0

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

我有一个视图模型,包含一个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="" />

谁能指出我做错了什么?

4

2 回答 2

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>标记之前。

于 2013-02-07T13:37:20.427 回答
0

我举起双手,承认自己的愚蠢。

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

很抱歉浪费您的时间。

于 2013-02-07T16:20:55.027 回答