我的桌子上有2个字段:姓名,家庭。我想用一个编辑器插入这两个项目。在asp.net webforms中,我们将其插入:
sqlcommand1.parameters.addwithvalue(“Field”,txtName.text + txtFamily.text);
我在MVC中这样做:
@ Html.EditorFor((model => model.Name)&&(model => model.Family))
现在我想知道我该怎么做?
答案 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属性,则可以定义一个需要该接口的编辑器。
如果你想更具体地了解编辑器,我可以提供更详细的答案。