Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC中的2视图模型_C#_Asp.net Mvc_Kendo Ui - Fatal编程技术网

C# ASP.NET MVC中的2视图模型

C# ASP.NET MVC中的2视图模型,c#,asp.net-mvc,kendo-ui,C#,Asp.net Mvc,Kendo Ui,型号: public class Order { [ScaffoldColumn(false)] public int Id { get; set; } public string UserName { get; set; } public int Amount { get; set; } [ScaffoldColumn(false)] public Guid UniqueId { get; set;

型号:

public class Order
{
    [ScaffoldColumn(false)]
    public int Id { get; set; }        

    public string UserName { get; set; }       

    public int Amount { get; set; }      

    [ScaffoldColumn(false)]
    public Guid UniqueId { get; set; }

    public DateTime CreateDate { get; set; }

    public string ManagerId { get; set; }     

}

 public class UserProfile
{
    public int Id { get; set; }

    public string Username { get; set; }

    public string Phone { get; set; }

    [StringLength(255)]
    public string NameSurname { get; set; }

    public bool IsCompany { get; set; }
}
我需要在剑道网格中显示两个模型。视图中的示例代码:

@(Html.Kendo().Grid<oko.Models.OrderDto>().Name("NewOrders").Columns(columns =>
{       
    columns.Bound(s => s.Username);
    columns.Bound(s => s.NameSurname);
    columns.Bound(s => s.Phone);
    columns.Bound(s => s.CreateDate).Format("{0:dd/MM/yyyy}");  
})
@(Html.Kendo().Grid().Name(“NewOrders”).Columns(Columns=>
{       
columns.Bound(s=>s.Username);
columns.Bound(s=>s.nameurname);
columns.Bound(s=>s.Phone);
columns.Bound(s=>s.CreateDate).Format(“{0:dd/MM/yyyy}”);
})
字段
UserName
它们具有相同的名称。
如何传递字段
Phone
nameurname

您不能绑定到多个类类型,因此最好的方法是创建一个复合类ViewModel来保存所需的属性。将其填充到控制器中,并将其传递回模型

示例视图模型

public class OrderDtoViewModel
{
    public string UserName { get; set; }
    public string NameSurname { get; set; }
    public string Phone { get; set; }
    public DateTime CreateDate { get; set; }

    //etc...
}
public class MyController
{
    public ActionResult Index()
    {
        var data = _myRepository.GetYourData();

        var viewModel = new OrderDto()
        {
            UserName = data.UserName,
            NameSurname = data.NameSurname,
            Phone = data.Phone,
            CreateDate = data.CreateDate
        };

        return View(data)
    }
}
控制器

public class OrderDtoViewModel
{
    public string UserName { get; set; }
    public string NameSurname { get; set; }
    public string Phone { get; set; }
    public DateTime CreateDate { get; set; }

    //etc...
}
public class MyController
{
    public ActionResult Index()
    {
        var data = _myRepository.GetYourData();

        var viewModel = new OrderDto()
        {
            UserName = data.UserName,
            NameSurname = data.NameSurname,
            Phone = data.Phone,
            CreateDate = data.CreateDate
        };

        return View(data)
    }
}
然后在剑道网格中,使用复合视图模型(在上面的示例中称为
ordedtoviewmodel

@(Html.Kendo().Grid().Name(“NewOrders”).Columns(Columns=>
{       
columns.Bound(s=>s.Username);
columns.Bound(s=>s.nameurname);
columns.Bound(s=>s.Phone);
columns.Bound(s=>s.CreateDate).Format(“{0:dd/MM/yyyy}”);
})