Отправка нескольких строковых значений из jquery ajax в C# контроллер - PullRequest
0 голосов
/ 12 января 2020

Как я могу опубликовать несколько строк формы jquery ajax для действия контроллера C#? У меня это работает с одной строкой, но я не уверен, как отправить более одной строки в метод в c# с двумя строковыми параметрами.

Jquery код:

  var data = {
                date: "s",
                index: "sa"
            }

            $.ajax({
                url: "/Home/PersistTimeOfDay",

                type: 'post',


                data: JSON.stringify(data),

                contentType: 'application/json',


                success: function(response) {
                    alert(response);

                },

                error: function(jqXHR, textStatus, errorThrown){
                    alert(jqXHR.status);
                }
            })

C# код:

        [Microsoft.AspNetCore.Mvc.HttpPost]
        public IActionResult PersistTimeOfDay([FromBody] string date, [FromBody] string index)
        {
            return Json("s");

        }

Хотел бы наконец этого добиться! Я пробовал несколько комбинаций и получаю одно или все значения null.

Ответы [ 3 ]

1 голос
/ 12 января 2020

Делая так,

вы можете передавать несколько параметров столько раз, сколько захотите

Просто передайте данные как модель из вашего js как

    var employee = new Object();  
    employee.Name = "ABC" 
    employee.Address = "PUNE";  
    employee.Location = "PUNE";  

    $.ajax({  
            type: "POST",  
            url: "/Home/PersistTimeOfDay",  
            data: JSON.stringify(employee),  
            contentType: "application/json; charset=utf-8",  
            dataType: "json",  
            success: function(response) {  
               // Do your code here
            },  
            failure: function(response) {  
                alert(response.responseText);  
            },  
            error: function(response) {  
                alert(response.responseText);  
            }  
        });  

и создайте одну модель как Employee, как

public class Employee 
{  
    public string Name {get;set;}  
    public string Designation {get;set;}  
    public string Location {get;set;}  
}  

и просто добавьте код в свой контроллер

  [HttpPost]  
  public JsonResult PersistTimeOfDay(Employee employeeData) {  
        Employee employee = new Employee {  
            Name = employeeData.Name,  
                Designation = employeeData.Designation,  
                Location = employeeData.Location  
        };  
        return Json(employee, JsonRequestBehavior.AllowGet);  
    }  
0 голосов
/ 12 января 2020

Вы можете попробовать этот способ для достижения этого

C#

public class ParamModel 
{
    public string date { get; set; }
    public string index { get; set; }
}

[HttpPost]
public IActionResult PersistTimeOfDay([FromBody] ParamModel model)
{
  return Json("s");
}

Javascript

$.ajax({
        type: "POST",
        url: "/Home/PersistTimeOfDay",
        contentType: "application/json",
        dataType: "json",
        data: JSON.stringify({ date: "s" , date:"sa" }),
        success: function(response) {
            console.log(response);
        },
        error: function(jqXHR, textStatus, errorThrown){
                alert(jqXHR.status);
        }
});
0 голосов
/ 12 января 2020

Попробуйте это. Ваш URL правильный?

   $.ajax({
                    url: "/Home/PersistTimeOfDay",
                    type: 'post',
                     data: JSON.stringify( { "date":"s" , "date":"sa" }),
                    contentType: 'application/json',
                    success: function(response) {
                        alert(response);
                    },
                    error: function(jqXHR, textStatus, errorThrown){
                        alert(jqXHR.status);
                    }
                })

Но я использую этот метод для передачи данных всей формы

 data:$('form#yourformuniqueid').serialize(),
...