2016-07-20 2 views
1

Я работаю с mvc5. Я использую виджет, который загружает изображение в облако и вызывает событие. При успехе мне нужно написать некоторую информацию в базу данных. Данные в первой строке кода.Как получить данные POST от запроса asp mvc 5

$(document).on('cloudinarywidgetsuccess', function (e, data /*this data I need in database*/) { 
    $.ajax({ 
     url: "/Cabinet/UploadImageCallback", 
     type: "POST", 
     data: data, 
     success: function (data) { 
      if (data.status == "success") { 
       console.log(data); 
      } else { 
       console.log("db error"); 
       console.log(data); 
      } 
     }, 
     error: function (data) { 
      console.log("An error has occured!!!"); 
      console.log(data); 
     } 
    }); 
}); 

Я хочу получить данные в контроллере в формате json. Если я отправлю таким образом на .php, я могу получить доступ к данным таким образом $_POST['KEY']. Как получить аналогичную функциональность в MVC5?

+0

Как выглядит 'data'? – Shyju

+0

@Shyju json массив – Nikita

+1

какой структура? Создайте класс с той же структурой и используйте это как свой параметр. Когда данные будут опубликованы, привязка модели сопоставляет опубликованные данные с объектом этого класса, и вы можете получить к ним доступ. – Shyju

ответ

1

Вы можете просто использовать модель в качестве параметра; в большинстве случаев ASP.NET MVC по умолчанию ModelBinder может отображать вашу модель.

$.ajax({ 
    url: "@Url.Action("UploadImageCallback", "Cabinet")", // If you want strongly-typed URL 
    contentType: "application/json; charset=utf-8", 
    method: "POST", 
    data: JSON.stringify(data) 
    ... 
}); 

public class CustomerModel 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

[HttpPost] 
public ActionResult UploadImageCallback(CustomerModel model) 
{ 
    // Do something 
} 
+0

Я читал о привязках к модели. Поэтому, если вам нужны некоторые поля, вы можете просто написать следующее в действии: 'public ActionResult UploadImageCallback (string field1, string field3)'. Модельное связующее автоматически выполняет поиск json-переменных с тем же именем, что и параметры действия в доступных источниках данных (POST, GET, SESSION - не имеет значения). Одни и те же имена являются первыми, второе связующее пытается преобразовать строковое значение в тип параметра, если оба условия истинны, связующее передает значение в действие. – Nikita

Смежные вопросы