C# 从局部视图添加数据

C# 从局部视图添加数据,c#,jquery,ajax,asp.net-mvc,C#,Jquery,Ajax,Asp.net Mvc,始终在同一个项目上(对于询问我的人),我有一个实体“人”,它与实体VehicleFuelCard(一对多关系)有关。在我的“CreatePerson”视图中,AJAX代码包含了一个局部视图,实际上是一个“CreateFuelCard”视图: 以下是我使用的ViewModel: public class PersonViewModel { private Person _person; public List<VehicleFuelCard> listVehicleFu

始终在同一个项目上(对于询问我的人),我有一个实体“人”,它与实体VehicleFuelCard(一对多关系)有关。在我的“CreatePerson”视图中,AJAX代码包含了一个局部视图,实际上是一个“CreateFuelCard”视图:

以下是我使用的ViewModel:

public class PersonViewModel
{
    private Person _person;
    public List<VehicleFuelCard> listVehicleFuelCard;
    public Person Person
    {
        get
        {
            return this._person;
        }    
    }

    public PersonViewModel()
    {
        this._person = new Person();
    }

    public PersonViewModel(Person person)
    {
        this._person = person;
    }

    public VehicleFuelCard NewVehicleFuelCard
    {
        get
        {
            VehicleFuelCard element = new VehicleFuelCard();
            element.Person = this.Person;
            Person.VehicleFuelCards.Add(element);

            return element;
        }
    }

    public PhoneCard NewPhoneCard
    {
        get
        {
            PhoneCard element = new PhoneCard();
            Person.PhoneCards.Add(element);

            return element;
        }
    }

    public ProductAllocation NewProductAllocation
    {
        get
        {
            ProductAllocation element = new ProductAllocation();
            Person.ProductAllocations.Add(element);

            return element;
        }
    }
}

在我添加一个人的同时添加一张加油卡,你有什么想法吗?谢谢

如果您想在同一请求上发布
个人
燃油卡
,您需要更新客户端的数据,将
燃油卡
作为请求的一部分

这是在客户端,在服务器端,您可以将
燃油卡
作为嵌套对象添加到
Person
(不过,在序列化到客户端时要注意循环引用)

这是一个粗略的例子。更新客户端上的对象,以包括
PersonViewModel
Fuel Card
。例如,使用javascript创建对象:

var person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
添加嵌套对象

person.FuelCard = {property1 ="val1", property2="Val2};
然后使用Ajax将其发布到服务器

$.post('/Person/Create', person, function(data) {
   // do something on success
 });

谢谢我想我得做些调查,因为我没听懂你解释的一切。但是谢谢,我已经扩展了我的答案。
var person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
person.FuelCard = {property1 ="val1", property2="Val2};
$.post('/Person/Create', person, function(data) {
   // do something on success
 });