2011-08-22 44 views
6

呼啦大家选中的,启动一组单选按钮在asp.net mvc的

我有一个强类型的视图和一个int Rating财产,我产生几个单选按钮,如下所示:

@Html.RadioButtonFor(m => m.Rating, 1, new { id = "past_Rating_one"}) 
@Html.RadioButtonFor(m => m.Rating, 2, new { id = "past_Rating_two"}) 
@Html.RadioButtonFor(m => m.Rating, 3, new { id = "past_Rating_three"}) 
@Html.RadioButtonFor(m => m.Rating, 4, new { id = "past_Rating_four"}) 
@Html.RadioButtonFor(m => m.Rating, 5, new { id = "past_Rating_five"}) 

当然,每个单选按钮之后我都会有标签,jquery用图像和奇观来炫耀它。

这一切都很好,但是当页面开始时,已经选择了编号为past_Rating_one的单选按钮。我很困惑如何在页面加载时取消选中所有单选按钮。

当然,可以用jQuery做,但我只想用视图来做。

我这个试了一下:

@Html.RadioButtonFor(m => m.Rating, 1, new { id = "past_Rating_one", selected="none"}) 

萤火检查表明,作为一个财产,但仍然是该死的单选按钮(第一个)被死死检查,所以我想我会寻求揭掉帮助。

回答

10

尝试设置评分作为你的视图模型可为空的对象,如:

int? Rating { get; set; } 

一个整数,缺省值为零,所以值0将渲染单选按钮时被选择。我知道在你的例子中你不使用值0,但我怀疑你在你的项目中做。否则我想不出选择单选按钮的原因。

如果评级是枚举,则同样适用。

+0

罗宾,你提到如果它是一个枚举,那么同样的事情适用。如果我公开MyEnum,会出现错误? MyProperty {get;集;}'。我的单选按钮列表中的第一件事情与默认选择相同,我希望它们在页面加载时都是空白的。有任何想法吗?谢谢。 – REMESQ

+1

@REMESQ我知道这是旧的,但我使用了一个可为空的枚举,它对我来说非常合适。你遇到了什么错误? – Rob

+0

@Rob问题已解决。而不是'int?评级'例如,我可能会做'RatingEnum? Rating'。 – REMESQ