gpt4 book ai didi

javascript - C# ASP.MVC 使用 Html.EditorFor 和 JavaScript 获取复选框值

转载 作者:行者123 更新时间:2023-11-28 14:53:04 24 4
gpt4 key购买 nike

只是想知道,想象一下我有一个像这样的复选框:

<input type="checkbox" id="situationcontrol" name="situationcontrol">

我可以使用以下 JavaScript 代码检查是否已选中:

var situationcontrol = $("#situationcontrol").prop('checked');

现在我想知道如果您使用 @Html.EditorFor 制作复选框,这将如何工作

像这样:

@Html.EditorFor(model =>Model.ServiceDeliveryMutableObjects.SituationControl)

我尝试使用新生成的 ID 更改相同的 JavaScript 代码

var situationcontrol = $("#ServiceDeliveryMutableObjects.SituationControl").prop('checked');

但这似乎不起作用。知道这将如何运作吗?

谢谢

编辑:当我使用 @Html.EditFor 检查浏览器中的元素时 enter image description here

最佳答案

编辑

直到您发布渲染输出后才意识到这一点。 . 在 HTML id 中无效,因此 Razor 使用下划线代替。因此,您应该选择的 ID 是 #ServiceDeliveryMutalObjects_SituationalControl,而不是 #ServiceDeliveryMutalObjects.SituationalControl。除此之外,我原来的答案的其余部分适用。

原版

首先,实际上最好使用:

$('#foo').is(':checked')

现在,至于使用 EditorFor技术上,这不会改变任何东西。 id 显然将基于对象图,即 #ServiceDeliveryMutalObjects_SituationalControl,但 HTML 元素的实际呈现没有任何变化。我在这里强调了“技术上”,因为虽然应该是这样,但没有默认的编辑器模板可以实际呈现复选框输入。默认是一个文本框,而一个文本框,显然不会有checked属性。这可以通过以下任一方式纠正:

  1. 使用 CheckBoxFor 代替。这样,您就可以确保获得实际的复选框输入。

  2. 假设此属性是 bool 值,您可以使用以下内容创建 View Views/Shared/EditorTemplates/Boolean.cshtml:

    @model bool?
    @Html.CheckBox("", Model)

    然后,EditorFor将使用此模板,并生成一个复选框输入。

最后,这可能只是您问题中的拼写错误,但您希望表达式右侧出现小写“model”,而不是“Model”。换句话说,它需要匹配 lambda 的左侧。我倾向于避免在这些表达式中使用 model,因为不仅需要输入更多内容,而且您很容易混淆“model”和“Model”,尤其是使用 Intellisense 的自动完成功能时。例如,

@Html.EditorFor(m => m.ServiceDeliveryMutableObjects.SituationControl)

关于javascript - C# ASP.MVC 使用 Html.EditorFor 和 JavaScript 获取复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43875984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com