我需要在我的页面上有一个下拉列表,允许用户选择他们的状态.由于这可能是一个将在别处使用的控件,我认为创建一个可以重用的MVC View用户控件是个好主意.
我在想控件看起来像这样:
我的视图中的代码将是这样的:
<%= 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之类的东西.