我需要在我的页面上有一个下拉列表,允许用户选择他们的状态.由于这可能是一个将在别处使用的控件,我认为创建一个可以重用的MVC View用户控件是个好主意.
我在想控件看起来像这样:
<select name="" id=""> <option value="AL">Alabama</option> <option value="AK">Alaska</option> </select>
我的视图中的代码将是这样的:
<%= Html.RenderPartial("StateDropdownControl") %>
我的问题是,在控件上设置名称和ID的最佳方法是什么?如果需要,我想确保在一个页面上可以有多个此控件实例.此外,我希望能够发送默认情况下应该选择的状态.
我会以某种方式使用ViewData吗?
解决方法
Corey正在寻找合适的解决方案.我认为为您的视图声明特定的模型对象会使视图非常简单,并且作为副作用使它们易于测试.
因此,您可能希望创建自己的Model对象以传入,而不是仅将ID作为对象传递.
它可能看起来像这样:
public class StateDropDownPresentationModel { public string DropDownID { get; set; } public string SelectedState { get; set; } }
然后,你可以像这样调用它:
<%= Html.RenderPartial("/someDirectory/SomeControl.ascx",new StateDropDownPresentationModel { DropDownID = "MyID",SelectedState = "IL" } %>
然后确保你检查ID为null / blank(可能会抛出错误)和SelectedState为null / blank之类的东西.