【问题标题】:Sending back a different model from the view从视图发回不同的模型
【发布时间】:2015-02-11 14:08:00
【问题描述】:

我想将 2 个不同模型的详细信息发送到视图,因此我使用视图模型执行此操作。

namespace Apps.Models
{
public class viewmodel1
{
    public App app { get; set; }
    public List<Colleague> colleague { get; set; }
}
}

app 是存储有关应用程序的各种属性的模型,而 colleague 是存储有关同事的各种属性的模型。

最初我只是传入应用程序,但我希望能够在创建应用程序时在此视图中显示同事名字的下拉列表(因为两者是链接的)所以我需要传入所有当前同事的名字。这部分工作正常。

但是,当提交表单以采用这种新的视图模型类型时,我的操作结果需要更改,并且我不知道如何从操作结果访问属性。通常,当您绑定包含时,模型中只有属性,但我想包含视图模型所具有的对象内的属性。我不知道该怎么做,或者我只是做错了什么。

我显然希望保留已经为应用程序属性编写的验证,但我不确定我是否可以这样做。

【问题讨论】:

  • 您是否尝试过这种方式,是否遇到问题或错误,如果是,您可以编辑您的问题以添加您尝试使其工作时遇到的任何错误消息

标签: c# model-view-controller viewmodel


【解决方案1】:

如果没有看到您尝试使用的 xaml 绑定,不确定这是否是您问题的答案,但您可以使用深入对象的绑定。

因此,如果您有一个 Employee 对象,它是您的 DataContext(Employee 将是您的 ViewModel,尽管它没有控制器逻辑,所以我猜这里只是一个模型):

public class Employee
{
    public string Name {get; set;}
    public EmpAddress Address {get; set;}
}

public class EmpAddress
{
    public string Street {get; set;}
    public string Zip {get; set;
}

您可以执行如下所示的绑定:

<TextBlock Text={Binding Address.Street}/>

如果这不是你想要的,请告诉我,我会尽力提供帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    相关资源
    最近更新 更多