1

我有一个视图,我在我的文本字段上使用命名约定,以指示一旦将内容发布回我的控制器后应该对内容执行什么操作。

格式类似于:

<input type="text" name="RegistrationLine#ID" /> 更新

<input type="text" name="CreateRegistrationLine#LineNumber" />为创建

现在,由于我使用的是这个命名约定,因此不可能进行常规模型绑定。但是我一直在阅读有关该主题的一些内容,并且确实发现了一些迹象表明可以编写自定义模型绑定器,它应该能够帮助解析和绑定这些表单元素并正确实例化对象。

请阅读:将 formValue 绑定到不同名称的属性,ASP.NET MVC

这有点类似于我正在做的事情,除了我在尝试绑定的 formelement-name 中附加信息的额外复杂性。

我在这里离基地很远吗?如果没有,你们中的任何人都可以删除几行代码来展示如何启动这个模型绑定器。

如果这对于我真正想要实现的目标来说是一个非常糟糕的方法,我很想听听关于更好方法的建议。请注意,我想要做的是一次发回更新和创建。

4

1 回答 1

0

我不得不同意@jfar 和@omar。在这种情况下,我不认为自定义模型绑定器是您想要的位置。

您可以将复杂类型传递给您的视图,并简单地使用@jfar 提到的句号。

id="Model.Person.Name.FirstName"将愉快地绑定到一个名为 Person 的对象,该对象中有一个名为 Name 的类,该类具有一个名为 FirstName 的属性。

现在,如果您想对数据进行一些特殊检查,您可以实现一个部分类,该类将执行验证等并填充 ModelState 错误。

public partial class Name
{
  public void Validate(){ }
  public int CreateRegistrationLine(){ }
  public bool DoSpecialActions(){ }
}

有点不清楚你的特殊行动在做什么,所以我上面的例子可能不是你想要的。

于 2009-12-17T04:05:33.593 回答