MVC Razor:if-else条件在html文本框元素内部



我正试图用MVC Razor创建一个条件,代码如下:

@Html.TextBoxFor(m => Model.MyList[i].Value
new { autocomplete = "off", 
spellcheck = "false", data_val = 
Model.MyList[i].IsRequired.ToString().ToLower(), data_val_required = $"The 
field {Model.MyList[i].Description} is required", @: 
if(Model.MyList[i].FieldType == 0) { data_val_number = "Please enter     
`number" } })`

您可以创建一个if/else块,该块基于FieldType 生成文本框

@if(Model.MyList[i].FieldType == 0)
{
@Html.TextBoxFor(m => Model.MyList[i].Value
new { autocomplete = "off", 
spellcheck = "false", data_val = 
Model.MyList[i].IsRequired.ToString().ToLower(), data_val_required = $"The 
field {Model.MyList[i].Description} is required", data_val_number = "Please enter     
`number" } })`
}
else
{
@Html.TextBoxFor(m => Model.MyList[i].Value
new { autocomplete = "off", 
spellcheck = "false", data_val = 
Model.MyList[i].IsRequired.ToString().ToLower(), data_val_required = $"The 
field {Model.MyList[i].Description} is required"} })`
}

使用条件html属性:

@{
var myMessage = Model.MyList[i].FieldType == 0 ? "my message" : null;
}
@Html.TextBoxFor(m => Model.MyList[i].Value
new { autocomplete = "off", spellcheck = "false", data_val = 
Model.MyList[i].IsRequired.ToString().ToLower(), data_val_required = $"The 
field {Model.MyList[i].Description} is required", data_val_number = "@myMessage" 
})`

Razor足够聪明,如果@myMessage为null,它不会发出data_val_number。

关于条件属性的一些信息:

https://www.davidhaney.io/mvc4-conditional-html-attributes/

使用Razor MVC3 的条件HTML属性

MVC 3:用HtmlHelpers 有条件地添加Disabled属性

最新更新