我为代码框修改了此代码Has anyone implement RadioButtonListFor<T> for ASP.NET MVC?。
但是我遇到了一个小问题(带有复选框/ radiobutton:
如果我要绑定的项目在列表中,我会得到奇怪的名字:
//Here I've some for loop
@Html.CheckBoxListFor(m => m.Variables[i].Values[j].Triggers)
我得到了:
<input id="Variables.get_Item(value(ASP._Page_Areas_Advertiser_Views_Campaign_ValueDependency_cshtml+<>c__DisplayClass2).i).Values.get_Item(value(ASP._Page_Areas_Advertiser_Views_Campaign_ValueDependency_cshtml+<>c__DisplayClass4).j).Triggers_103" name="Variables.get_Item(value(ASP._Page_Areas_Advertiser_Views_Campaign_ValueDependency_cshtml+<>c__DisplayClass2).i).Values.get_Item(value(ASP._Page_Areas_Advertiser_Views_Campaign_ValueDependency_cshtml+<>c__DisplayClass4).j).Triggers.ListItems[0].Selected" type="checkbox" value="true" />
如何避免这个名字?
编辑: 项目列表是动态的,必须从控制器加载:
pulic ActionResult DoMyThing(){
_dataStore.MakeThings();
....
MyModel model = new MyModel{SelectedId=5, AvailableObjects= _aPreviouslyLoadedList};
return View(model);
}
答案 0 :(得分:1)
您可以发布CheckBoxListFor()
的扩展程序吗?根据您的可能参数,如果您有htmlAttributes的object
参数,则可以执行以下操作:
new { id = "yourDesiredIdName" }
答案 1 :(得分:0)
我刚刚发现了一个关于复选框,下拉列表,无线电按钮等的非常好的解决方案(根据我的需要)。
查看此帖子(底部链接到codeplex上的代码 - &gt;来源 - &gt;下载最新):
Adding Rich Selector Support for MVC by Matt Hidinger
请注意,帖子表明你需要三(3)个扩展文件才能使它工作,但是还需要一些其他的帮助扩展(DelimitedStringHelper.cs,HtmlFormHelper.cs,ReflectionHelper.cs和StringHelper.cs是你需要的其他人。)