Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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# MVC2 HttpPost未接收数据成员_C#_Asp.net Mvc 2 - Fatal编程技术网

C# MVC2 HttpPost未接收数据成员

C# MVC2 HttpPost未接收数据成员,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,我有一个简单的模型类(UserAddress),它没有正确地传递给HttpPost函数。对于所有成员数据,该数据始终具有空值 public class User { public string Name { get; set; } } public class Address { public string Address1; public string Address2; } public class UserAddress { public User Us

我有一个简单的模型类(UserAddress),它没有正确地传递给HttpPost函数。对于所有成员数据,该数据始终具有空值

public class User
{
    public string Name { get; set; }
}

public class Address
{
    public string Address1;
    public string Address2;
}

public class UserAddress
{
    public User User;
    public Address Address;

    public UserAddress()
    {
        User = new User();
        Address = new Address();
    }
}
还有一个简单的观点:

<table>
    <tr>
        <td>
            <%: Html.LabelFor(model => model.User.Name) %>
        </td>
        <td>
            <%: Html.TextBoxFor(model => model.User.Name) %>
            <%: Html.ValidationMessageFor(model => model.User.Name) %>
        </td>
    </tr>
    <tr>
        <td>
            <%: Html.LabelFor(model => model.Address.Address1)%>
        </td>
        <td>
            <%: Html.TextBoxFor(model => model.Address.Address1)%>
            <%: Html.ValidationMessageFor(model => model.Address.Address1)%>
        </td>
    </tr>
    <tr>
        <td>
            <%: Html.LabelFor(model => model.Address.Address2)%>
        </td>
        <td>
            <%: Html.TextBoxFor(model => model.Address.Address2)%>
            <%: Html.ValidationMessageFor(model => model.Address.Address2)%>
        </td>
    </tr>
</table>

所有成员变量均为空;例如userAddress.User.Name。

我唯一突出的一点是,您正在尝试绑定公共成员,而不是属性

也许可以尝试重构您的类以使用属性并尝试一下

public class Address
{
    public string Address1 { get; set; }
    public string Address2 { get; set; }
}

public class UserAddress
{
    public User User { get; set; }
    public Address Address { get; set; }

    public UserAddress()
    {
        User = new User();
        Address = new Address();
    }
}

对我来说唯一突出的是,您正试图绑定公共成员,而不是属性

也许可以尝试重构您的类以使用属性并尝试一下

public class Address
{
    public string Address1 { get; set; }
    public string Address2 { get; set; }
}

public class UserAddress
{
    public User User { get; set; }
    public Address Address { get; set; }

    public UserAddress()
    {
        User = new User();
        Address = new Address();
    }
}

我希望您在视图中指定了类似于System.Web.Mvc.ViewPage.True的模型绑定,但如果他没有指定,他的代码将给出运行时错误,而不是空http post。我希望您在视图中指定了类似于System.Web.Mvc.ViewPage.True的模型绑定,但如果他没有指定,他的代码将给出运行时错误,不是空的http post。我试过了,但是内部类。但是,我没有为UserAddress类尝试过。这是我的问题。我吻你!我试过了,但是里面的类。但是,我没有为UserAddress类尝试过。这是我的问题。我吻你!