gpt4 book ai didi

c# - 如何设置文本框只读属性 true 或 false

转载 作者:太空狗 更新时间:2023-10-29 22:17:06 25 4
gpt4 key购买 nike

我需要你的帮助来根据条件创建文本框只读属性 true 或 false。我试过但是没有成功。下面是我的示例代码:

string property= "";
if(x=true)
{
property="true"
}
@Html.TextBoxFor(model => model.Name, new { @readonly = property})

我的问题是:即使条件为假,我也无法编写或编辑文本框?

最佳答案

这是因为 HTML 中的 readonly 属性被设计成仅存在就表示只读文本框。

我相信值 true|false 被属性完全忽略,事实上推荐值是 readonly="readonly"

要重新启用文本框,您需要完全删除 readonly 属性。

鉴于 TextBoxForhtmlAttributes 属性是一个 IDictionary,您可以根据您的要求简单地构建对象。

IDictionary customHTMLAttributes = new Dictionary<string, object>();

if(x == true)
// Notice here that i'm using == not =.
// This is because I'm testing the value of x, not setting the value of x.
// You could also simplfy this with if(x).
{
customHTMLAttributes.Add("readonly","readonly");
}

@Html.TextBoxFor(model => model.Name, customHTMLAttributes)

添加自定义属性的简写方式可能是:

var customHTMLAttributes = (x)? new Dictionary<string,object>{{"readonly","readonly"}} 
: null;

或者简单地说:

@Html.TextBoxFor(model => model.Name, (x)? new {"readonly","readonly"} : null);

关于c# - 如何设置文本框只读属性 true 或 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6610832/

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