如何绑定<输入类型 = "text" ..与我的财产处于视图模式



如何绑定到具有Subsidiary类型属性的input[type='text']字段当用户注册一方时,其中一个字段是该方的子公司

我没有放置DropDown、Select或Radio字段,而是放置了input[type='text']字段当用户开始键入子公司的名称时,jQueryUI的自动完成显示子公司已过滤的列表

代码

为了完成这些任务,我有:

ViewModel

public class PartyViewModel
{       
    [UIHint("SubsidiarySelect")]
    public Subsidiary Subsidiary { get; set; }
}

HTML

SubsidiarySelect 编辑器模板生成的HTML

<input id="Subsidiary_Title" name="Subsidiary.Title" type="text" value="">
<input id="Subsidiary" name="Subsidiary" type="hidden" value="00000000-0000-0000-0000-000000000000">

#Subsidiary_Title>用于显示所选子公司
#Subsidiary>保存子的选定代码Guid

控制器

我的控制没什么特别的。我希望我的PartyViewModel类中的属性Subsidiary已经填充。

[HttpPost]
public ActionResult Nova(PartyViewModel model)
{
    if (ModelState.IsValid)
    {
        //.....
    }
}

问题

我想创建一个SubsidiaryBinder: IModelBinder,这样在发布帖子时,我就会用数据库值(如ID)填充Subsidiary属性

  1. 如果这是解决方案,那么如何创建仅在类PartyViewModel中运行的绑定器
  2. 如何自动检索值​​发布时从Subsidiary属性类PartyViewModel的数据库

您可以在global.asax 中的Application_Start上为PartyViewModel设置Binder

样品

您的活页夹

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());

相关内容

  • 没有找到相关文章

最新更新