我知道我在某个地方做错了什么,有人可以向我指出吗?
我有一个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="" />
有谁可以指出我做错了什么?
答案 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)
我举起双手并拥有愚蠢。
我试图查看查看页面源的动态更改的值视图。我突然想到这没有出现。我发出警报,价值正在改变。
抱歉浪费你的时间。