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并应用readonly
和disabled
属性(我以前用textboxfor做过这件事,效果很好:
@Html.EditorFor(m => m.Deleted, new { htmlAttributes = new { @class = "form-control", @readonly = "readonly", @disabled = "disabled", @id = "cbCourtDeleted" } })
但当在编辑器中使用时(至少对于复选框),选中的状态不会显示-它显示为未选中,但它确实具有所需的id。
问题:如何显示模型中有id的bool字段,以便通过jquery/javascript访问它?
@Html.CheckBoxFor(m => m.Deleted, new { @id = "chkDeleted", @disabled = "true"})
HTML输入元素将id
和name
属性设置为模型类的属性名称,可能不需要使用属性设置id,
@Html.CheckBoxFor(m => m.Deleted)
如果复选框不允许编辑,并且disabled
属性用于阻止编辑,则向模型添加另一个属性以将值返回给服务器可能会有所帮助,因为浏览器不会返回禁用输入的值。这个新属性可以是一个隐藏字段,并且可以使用JQuery进行设置。
@Html.CheckBoxFor(m => m.Deleted, new { disabled = "disabled" })
@Html.HiddenFor(m => m.DeletedAndBackToServer)