我有一个属性OriginalCreated
的日期字段,如果用户选中一个复选框,指示该帖子是第一次发布,我想禁用它。我可以在不使用JavaScript或jQuery的情况下实现这一目标(并且不会回发!)?
我遵循了这个answer但它没有与我合作,我尝试了最简单的格式(用于测试)而没有传递任何参数,只有true
和false
:
<div class="form-group">
@Html.LabelFor(model => model.Body, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.MyTextBoxFor(model => model.Body, new { @class = "form-control"}, true)
@Html.ValidationMessageFor(model => model.Body, "", new { @class = "text-danger" })
</div>
</div>
我在上述答案中实现了同一个类, 并尝试了这个:
public static IHtmlString MyTextBoxFor<TModel,TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel,TProperty>> expression,
object htmlAttributes,
bool disabled
)
{
var attributes = new RouteValueDictionary(htmlAttributes);
if (disabled)
{
attributes.Add("disabled", "\"disabled\"");
}
return htmlHelper.TextBoxFor(expression, htmlAttributes);
}