如何用一个编辑器插入两个模型项?

时间:2012-07-04 09:43:32

标签: asp.net-mvc asp.net-mvc-3

我的桌子上有2个字段:姓名,家庭。我想用一个编辑器插入这两个项目。在asp.net webforms中,我们将其插入:

  

sqlcommand1.parameters.addwithvalue(“Field”,txtName.text +   txtFamily.text);

我在MVC中这样做:

  

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

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

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

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

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

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

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