1

我的表中有 2 个字段:姓名、家庭。我想用一个编辑器插入这两个项目。在 asp.net 网络表单中,我们像这样插入它:

sqlcommand1.parameters.addwithvalue("字段", txtName.text + txtFamily.text);

我在 MVC 中这样做:

@Html.EditorFor((model => model.Name) && (model => model.Family))

现在我想知道我该怎么做?

4

2 回答 2

3

我会在您的模型中添加另一个属性FullName

public string FullName
{
    get { return Name + " " + Family; }
    set
    {
        string[] names = value.Split(' ');
        Name = names[0];
        if (names.Length > 1) Family = string.Join(" ", names.Skip(1).ToArray());
    }
}

然后你可以在视图中使用它:

@Html.TextBoxFor(model => model.FullName)
于 2012-07-04T09:54:37.953 回答
0

您可能已经看到了您会收到的错误消息,即“模板只能用于字段访问、属性访问、单维数组索引或单参数自定义索引器表达式。”

EditorFor 的想法是获取现有值并将更改绑定回模型。因此,您尝试绑定回两个属性是没有意义的。它怎么知道如何分割文本?

如果您已创建或想要创建自己的编辑器模板,则不必拥有单独的属性或模型。您可以使用接口作为编辑器的基础。因此,如果创建一个名为 INameAndFamily 的接口,并说基于该接口的对象需要 Name 和 Family 属性,您可以定义一个需要该接口的编辑器。

如果您想更具体地了解编辑器,我可能会提供更详细的答案。

于 2012-07-04T09:49:54.287 回答