C#MVC-如何显示带有id的不可编辑复选框,以便我可以用Jquery获取它

本文关键字:复选框 编辑 我可以 获取 Jquery 何显示 显示 id C#MVC- | 更新日期: 2023-09-27 18:20:30

我遇到一个绑定到布尔的字段的问题。

我想在我的模型中显示一个表示布尔字段的复选框。我不希望用户能够编辑它。但我需要能够使用jquery编辑它的检查状态,为此它需要有一个id。

我似乎做不到。以下是我尝试过的:

@Html.DisplayFor(m => m.Deleted, null)

这显示了正确的选中状态,但复选框上没有id。

我注意到使用EditorFor可以按以下方式应用HTML属性,但它在DisplayFor中不起作用——它们被忽略了。

@Html.DisplayFor(m => m.Deleted, new { htmlAttributes = new { @id = "cbCourtDeleted" } })

所以我想我可以使用和EditorFor并应用readonlydisabled属性(我以前用textboxfor做过这件事,效果很好:

@Html.EditorFor(m => m.Deleted, new { htmlAttributes = new { @class = "form-control", @readonly = "readonly", @disabled = "disabled", @id = "cbCourtDeleted" } })

但当在编辑器中使用时(至少对于复选框),选中的状态不会显示-它显示为未选中,但它确实具有所需的id。

问题:如何显示模型中有id的bool字段,以便通过jquery/javascript访问它?

C#MVC-如何显示带有id的不可编辑复选框,以便我可以用Jquery获取它

@Html.CheckBoxFor(m => m.Deleted, new { @id = "chkDeleted", @disabled = "true"})

HTML输入元素将idname属性设置为模型类的属性名称,可能不需要使用属性设置id,

@Html.CheckBoxFor(m => m.Deleted)

如果复选框不允许编辑,并且disabled属性用于阻止编辑,则向模型添加另一个属性以将值返回给服务器可能会有所帮助,因为浏览器不会返回禁用输入的值。这个新属性可以是一个隐藏字段,并且可以使用JQuery进行设置。

@Html.CheckBoxFor(m => m.Deleted, new { disabled = "disabled" })
@Html.HiddenFor(m => m.DeletedAndBackToServer)