我一直在玩各种方法来根据模型中的枚举在单选按钮上设置checked
属性,但似乎无法正确使用...
@foreach (LeadPriceAdjustmentItem state in Model.LeadPriceAdjustmentList)
{
....
<input
type="radio"
name="direction_@state.StateCode"
id="direction_@state.StateCode"
@if (state.Direction == LeadPriceAdjustmentDirection.Up) { checked } /> Up
}
在最后}
我被告知:
预期{
很确定我错过了一些明显的东西,但我没有发现它。
答案 0 :(得分:2)
在视图的html中编写服务器端代码的语法并不完全正确,尽管你已经足够接近了,你需要这样写:
<input
type="radio"
name="direction_@state.StateCode"
id="direction_@state.StateCode"
@(state.Direction == LeadPriceAdjustmentDirection.Up ? "checked='checked'" : "")/>
答案 1 :(得分:2)
<input type="radio"
name="direction_@state.StateCode"
id="direction_@state.StateCode"
@(state.Direction == LeadPriceAdjustmentDirection.Up ? "checked" : "") /> Up
答案 2 :(得分:2)
剃刀并不完美。它像你一样工作&#34;思考&#34;它应该工作大部分时间。但是,在这种情况下,您需要添加其他语法来识别&#34;已检查&#34;或&#34;检查=&#39;检查&#39;&#34;作为一个字符串。最简单的方法是
<input
type="radio"
name="direction_@state.StateCode"
id="direction_@state.StateCode"
@(state.Direction == LeadPriceAdjustmentDirection.Up ? <text>checked='checked'</text> ? "")/>
或
<input
type="radio"
name="direction_@state.StateCode"
id="direction_@state.StateCode"
@(state.Direction == LeadPriceAdjustmentDirection.Up ? <text>checked</text> ? "")/>
此外,您可以使用Html.Raw
<input
type="radio"
name="direction_@state.StateCode"
id="direction_@state.StateCode"
@(state.Direction == LeadPriceAdjustmentDirection.Up ? Html.Raw("checked='checked'"); ? "")/>
基本上,Razor正试图解析&#34;检查&#34; string作为服务器端命令。你需要告诉它它只是原始内容。