0

そのため、顧客を作成できるシンプルな API を構築しようとしています。VS2012 で ASP.NET Web API を使用しており、デフォルトのプロジェクト構成を使用しています。ここに私が持っているものがあります:

HTML

<h2 id="msg"></h2>
<form onsubmit="return submitCustomer()">
    <input type="text" name="name" id="name" />
    <input type="text" name="email" id="email" />
    <input type="text" name="phone" id="phone" />

    <input type="submit" value="Sign Up" />
</form>

<script type="text/javascript">
    function submitCustomer() {        
        $.ajax({
            url: '/api/customer',
            type: 'POST',
            datatype: 'json',
            success: function (newCustomer) {
                var msg = 'Welcome ' + newCustomer.Name;
                $('#msg').text = msg;
            }
        });
        return false;
    }
</script>

コントローラー方式

// POST api/customer
public Customer Post(Customer customer)
{
     CustomerService customerService = new CustomerService();
     customerService.CreateCustomer(customer);
     return customer;
}

モデル

public class Customer : BaseModel
{

    private string _name;

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    private string _phone;

    public string Phone
    {
        get { return _phone; }
        set { _phone = value; }
    }

    private string _email;

    public string Email
    {
        get { return _email; }
        set { _email = value; }
    }

    private Region _region;

    public virtual Region Region
    {
        get { return _region; }
        set { _region = value; }
    }

    private List<Product> _products;

    public virtual List<Product> Products
    {
        get
        {
            if (_products == null)
            {
                _products = new List<Product>();
            }
            return _products;
        }
        set { _products = value; }
    }


    private List<CustomerPromotion> _customerPromotions;

    public virtual List<CustomerPromotion> CustomerPromotions
    {
        get
        {
            if (_customerPromotions == null)
            {
                _customerPromotions = new List<CustomerPromotion>();
            }
            return _customerPromotions;
        }
        set { _customerPromotions = value; }
    }

    private int? _regionId;
    public int? RegionId
    {
        get
        {
            return _regionId;
        }
        set
        {
            _regionId = value;
        }
    }

}

何が起こっているのかというと、フォームを送信すると POST メソッドに到達しますが、顧客は null です。なぜこれが起こるのか誰にもわかりませんか?

4

1 に答える 1

2

$.ajax関数にデータがありません。

$.ajax({
  datatype:'json',
  data: yourformdata,
  ...
});
于 2012-10-12T07:13:01.413 に答える