C# @生成长id&;的单选按钮;名称

C# @生成长id&;的单选按钮;名称,c#,html,asp.net-mvc,radio-button,C#,Html,Asp.net Mvc,Radio Button,我有一个使用下一个模型的视图 @model Merak.Models.Product.Options.NumberOfObjectsProductOptionModel 和2个单选按钮 @Html.RadioButton(Constants.HtmlControlValues.OptionNumberObjectSelect, @Model.OptionOnePrice, true) <br/> @Html.RadioButton(Constants.HtmlContro

我有一个使用下一个模型的视图

@model Merak.Models.Product.Options.NumberOfObjectsProductOptionModel
和2个单选按钮

 @Html.RadioButton(Constants.HtmlControlValues.OptionNumberObjectSelect, @Model.OptionOnePrice, true) <br/>
    @Html.RadioButton(Constants.HtmlControlValues.OptionNumberObjectSelect, @Model.OptionTwoPrice)
@Html.RadioButton(Constants.HtmlControlValues.OptionNumberObjectSelect,@Model.OptionOnePrice,true)
@RadioButton(Constants.HtmlControlValues.OptionNumberObjectSelect,@Model.optionWoPrice)
Inside constants.HtmlControlValues.OptionNumberObjectSelect是一个内部带有“groupname”的字符串

我认为Html控件将生成如下内容:

<input id="groupname" name="groupname" type="radio" value="50,00">
<input id="NumberOfObjectsProductOptionModel_groupname" name="NumberOfObjectsProductOptionModel.groupname" type="radio" value="50,00">

但相反,它会产生如下结果:

<input id="groupname" name="groupname" type="radio" value="50,00">
<input id="NumberOfObjectsProductOptionModel_groupname" name="NumberOfObjectsProductOptionModel.groupname" type="radio" value="50,00">


你知道为什么会发生这种行为,以及我能做些什么来获取短名称/id版本吗?

你可以将constants.HtmlControlValues.OptionNumberObjectSelect分配给变量a,然后获取值:

@model Merak.Models.Product.Options.NumberOfObjectsProductOptionModel
@{
   string myControl = constants.HtmlControlValues.OptionNumberObjectSelect
}
然后在你的控制下使用它:

@Html.RadioButton(@myControl, @Model.OptionOnePrice, true)

你能用
@Html.RadioButtonFor(model=>model.OptionOnePrice)
看看效果是否更好。这样它就绑定到了您的模型。

这仍然会生成很长的idI。我有一个小的测试项目,我无法重现您在应用程序中的行为。您确定OptionNumberObjectSelect正在返回字符串值吗?在我的项目中,我有一个
公共静态字符串选项numberObjectSelect{get{return“groupname”;}}
这也输出了一个我不想要的长id:id=“NumberOfObjectsProductOptionModel\u OptionNeprice”使用html帮助程序的全部目的是绑定到模型属性。生成
意味着您不会绑定到您的模型(该模型不包含名为
groupname
的属性),因此只需手动创建html-
@StephenMuecke感谢您的知识!