ASP.Net MVC3:CheckBoxListFor / RadioButtonListFor

时间:2012-02-13 16:15:22

标签: asp.net-mvc asp.net-mvc-3

我为代码框修改了此代码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+&lt;>c__DisplayClass2).i).Values.get_Item(value(ASP._Page_Areas_Advertiser_Views_Campaign_ValueDependency_cshtml+&lt;>c__DisplayClass4).j).Triggers_103" name="Variables.get_Item(value(ASP._Page_Areas_Advertiser_Views_Campaign_ValueDependency_cshtml+&lt;>c__DisplayClass2).i).Values.get_Item(value(ASP._Page_Areas_Advertiser_Views_Campaign_ValueDependency_cshtml+&lt;>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);
}

2 个答案:

答案 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是你需要的其他人。)