Asp.net mvc 3 如何绑定a<;输入类型=";“文本”。。在视图模式下使用我的属性
如何绑定到属性类型为Asp.net mvc 3 如何绑定a<;输入类型=";“文本”。。在视图模式下使用我的属性,asp.net-mvc-3,modelbinders,mvc-editor-templates,custom-model-binder,Asp.net Mvc 3,Modelbinders,Mvc Editor Templates,Custom Model Binder,如何绑定到属性类型为Subsidiary的输入[type='text']字段 当用户注册一方时,其中一个字段是该方的子公司 我没有放置下拉列表,而是选择或收音机,而是放置了一个input[type='text']字段 当用户开始键入子公司的名称时,将显示已筛选的子公司列表 代码 为了完成这些任务,我必须: 视图模型 public class PartyViewModel { [UIHint("SubsidiarySelect")] public Subsidiary
Subsidiary
的输入[type='text']
字段
当用户注册一方时,其中一个字段是该方的子公司
我没有放置下拉列表,而是选择或收音机,而是放置了一个input[type='text']
字段
当用户开始键入子公司的名称时,将显示已筛选的子公司列表
代码
为了完成这些任务,我必须:
视图模型
public class PartyViewModel
{
[UIHint("SubsidiarySelect")]
public Subsidiary Subsidiary { get; set; }
}
HTML
由subdiaryselect的编辑器模板生成的HTML
<input id="Subsidiary_Title" name="Subsidiary.Title" type="text" value="">
<input id="Subsidiary" name="Subsidiary" type="hidden" value="00000000-0000-0000-0000-000000000000">
问题
我想创建一个SubsidiaryBinder:IModelBinder
,这样在发布帖子时,我就可以用数据库值(ID)填充SubsidiaryBinder
属性
如果这是解决方案,那么如何创建仅在类PartyViewModel中运行的绑定器
如何自动检索值发布帖子时,是否从子公司属性类PartyViewModel
的数据库中
您可以在global.asax中启动应用程序时为您的PartyViewModel
设置活页夹
样品
您的活页夹
public class PartyViewModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
// ... do something,
// for example, retieve values from database
return base.BindModel(controllerContext, bindingContext);
}
}
在global.asax中注册
ModelBinders.Binders.Add(typeof(PartyViewModel), new PartyViewModelBinder());
不确定将调用存储库的代码放入活页夹是否正确。如果客户端只有一个Subsidiary\u Title
列表,而没有匹配的guid,那么您仍然应该尝试通过应用程序的预期层调用数据库。如果在绑定器调用数据库或控制器post操作之间进行选择,我可能会更倾向于在控制器post操作中进行调用。再说一遍,我想这取决于应用程序的层次。
ModelBinders.Binders.Add(typeof(PartyViewModel), new PartyViewModelBinder());