【发布时间】:2015-05-23 01:54:24
【问题描述】:
我有这行代码:
@Html.EditorFor(model => model.Quantity, new { htmlAttributes = new { @class = "form-control", @readonly = "readonly" } })
我的视图数据字典中有一个名为 Readonly 的变量。如果 ViewBag.Readonly 为真,如何将 Quantity 设置为只读,如果为假,则不设置为只读?
简单的事情,但是 Razor 与 HTML(这是古老的)的结合使原本简单的事情变得不可能。
编辑:
我不想使用 if 语句。这是不得已而为之,因为它违反了 DRY,我过去曾多次因为不遵守而被严重烧伤。
我上面的那行确实有效,因为它使文本框成为只读的。我需要根据我的视图状态来设置这个条件。
解决方案:
我使用了以下内容。它仍然是 DRY 违规,但它会将其减少到一行。
@Html.EditorFor(model => model.Quantity, new { htmlAttributes = ViewBag.Readonly ? (object)new { @class = "form-control", @readonly = "htmlsucks" } : (object)new { @class = "form-control" } })
【问题讨论】:
标签: asp.net-mvc html asp.net-mvc-5