【发布时间】:2018-11-29 07:00:35
【问题描述】:
我一直在遇到问题,我一直在寻找答案,但没有任何帮助。
我有一个模型:
public class Filters
{
public bool Filter1 { get; set; }
public bool Filter2 { get; set; }
public bool Filter3 { get; set; }
etc...
}
我有一个带有多个复选框的部分视图并尝试了多种方法:
<input id="Filter1" name="Filter1" type="checkbox" value="true">
<input type="hidden" value="false" name="Filter1" />
和
@Html.CheckBoxFor(model => model.Filter1)
然后我有一个主模型:
public class Dashboard
{
...
public Filters FiltersDashboard { get; set; }
}
我在主视图的某处插入部分视图,如下所示:
@Html.EditorFor(model => model.FiltersDashboard, "Filters")
在 jquery 中,当单击复选框并显示复选框的值时,我会执行警报。该值保持不变。
<script>
$("#Filter1").click(function () {
alert(" @Model.FiltersDashboard.Filter1 ")
});
</script>
编辑:也在 .submit 函数中尝试过,但模型值保持不变:
<script>
$("#searchform").submit(function (event) {
alert(" @Model.FiltersDashboard.Filter1 ")
event.preventDefault();
});
</script>
这告诉我有些东西没有正确绑定,但我不知道我做错了什么。
另外,我不使用复选框列表的原因是我需要为每个过滤器执行不同的查询,因此我需要它们的特定名称和绑定。
【问题讨论】:
-
alert(" @Model.FiltersDashboard.Filter1 ") 将显示视图生成时模型的Filter1的值。复选框和模型之间的绑定将在表单发布到控制器时完成
-
@StephenMuecke 我在您提到的文件夹中有部分视图。在这种情况下,第二个参数真的很重要吗?部分视图正确加载。
-
@StephenMuecke 我不知道这是从局部视图绑定的正确方法。感谢您的反馈。我会按照你说的尝试绑定它。
标签: asp.net-mvc checkbox partial-views model-binding