【问题标题】:why rendering of radio button the correct with hardcoded string value?为什么用硬编码的字符串值正确渲染单选按钮?
【发布时间】:2016-05-11 11:57:00
【问题描述】:

我有样例模型,例如:

public class SimpleModel
{
    public bool SomeProp { get; set; }
    public SimpleModel()
    {
        //code
    }        
}

我想在视图中将 SomeProp 属性呈现为单选按钮(2 个按钮),例如:

//code
@Html.RadioButtonFor(m => m.SomeProp, Model.SomeProp, new { @id = id }) 
@Html.RadioButtonFor(m => m.SomeProp, !Model.SomeProp, new { @id = id })
//code

当我在视图上切换按钮的值并保存页面并再次获取页面时,我总是看到选中的第一个单选按钮。 此外,如果我选择 first 收音机并保存页面并再次获取页面,我会看到选中的 first 收音机。如果我选择 second 收音机并保存页面并再次获取页面,我会看到选中的 first 收音机。

我改了代码,例如:

//code
@Html.RadioButtonFor(m => m.SomeProp, "true", new { @id = id }) 
@Html.RadioButtonFor(m => m.SomeProp, "false", new { @id = id })
//code

这种方式总是正确的。如果我选择 first 收音机并保存页面并再次获取页面,我会看到选中的 first 收音机。如果我选择 second 收音机并保存页面并再次获取页面,我会看到选中的 second 收音机。

为什么用硬编码的字符串值正确渲染单选按钮?

【问题讨论】:

  • 第一个示例的结果是什么?
  • @JᴀʏMᴇᴇ 我看到两个单选按钮,但始终选中第一个单选按钮
  • 向我们展示标记。我昨天写了类似的东西并选择了第二个示例,我不确定您是否会选择第一个。
  • 你应该有不同的id,相同的id会导致无效的html
  • @JᴀʏMᴇᴇ 对不起,我不明白你不确定是什么?

标签: c# asp.net asp.net-mvc razor


【解决方案1】:

试试 Model.SomeProp.ToString() 。

【讨论】:

  • 感谢您的回答,但您的回答对我有什么帮助?
  • @Html.RadioButtonFor(m => m.SomeProp, Model.SomeProp.ToString(), new { @id = id })
  • 我的问题不是关于如何在字符串中呈现布尔值。不过还是谢谢
猜你喜欢
  • 2018-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
  • 2012-07-20
  • 1970-01-01
相关资源
最近更新 更多