>

jQuery 를 사용합니다   POST 와 데이터를 보내  방법. 그러나 서버 방법에서는 값이 오지 않습니다. 무엇이 오류 일 수 있습니까?

클라이언트

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "./AddTag",
    dataType: "json",
    data: "{'parentId':42,'tagName':'isTagName'}",
    success: function (response) {
        // ...
    }
});

서버

[HttpPost]
public JObject AddTag(int parentId, string tagName)
{
    dynamic answer = new JObject();
    List<LogRecord> logs = new List<LogRecord>();
    answer.added = fStorage.Tags.AddTag(parentId, tagName, logs);
    return answer;
}

고정 대단히 감사합니다. 나는 내 실수를 이해했다. 이를 위해 클라이언트 및 서버 코드를 수정했습니다.

let tag = {
        "Id": 0,
        "ParentId": 42,
        "Name": isTagName
    };
$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "./AddTag",
    dataType: "json",
    data: JSON.stringify(tag),
    success: function (response) {
        // ...
    }
});

서버

   [HttpPost]
    public JObject AddTag([FromBody] Tag tag)
    {
        dynamic answer = new JObject();
        List<LogRecord> logs = new List<LogRecord>();
        answer.added = fStorage.Tags.AddTag(tag.ParentId, tag.Name, logs);
        answer.logs = Json(logs);
        return answer;
    }

클래스가 추가되었습니다

public class Tag
{
    public int Id { get; set; }
    public int ParentId { get; set; }
    public string Name { get; set; }
    public List<Tag> ChildsList { get; set; }
    [NonSerialized]
    public Tag ParrentTag; 
}

  • 답변 # 1

    매개 변수를 별도의 DTO 클래스로 추출하여 다음과 같이하십시오 :

    public class ParentDTO 
    {
     public int parentId{get; set;}
     public string tagName{ get; set;}
    }
    [HttpPost]
    public JObject AddTag([FromBody] ParentDTO parent)
    {
    }
    
    

  • 답변 # 2

    [FromBody] 사용  매개 변수 앞에. 본문에서 속성 값을 확인하고 가져옵니다. 그렇지 않으면 URL 쿼리 문자열을 확인합니다.

    예 :

    [HttpPost]
    public JObject AddTag([FromBody] int parentid,[FromBody]string tagname)
    {
    }
    [HttpPost]
    public JObject AddTag([FromBody] {ModelName} parent)
    {
    }
    
    

  • 답변 # 3

    아약스를 이것으로 변경

    $.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "./AddTag?parentId="+42+"&tagName="+'isTagName',
    dataType: "json",
    success: function (response) {
        // ...
    }
    
    

    });

  • 이전 java - 코 틀린의 Class clazz
  • 다음 python - 팬더 데이터 프레임에 정규식 함수 적용