MVC — Отправка класса в Классе Контроллеру с Данными формы

#class #model-view-controller #subclass #form-data

#класс #модель-вид-контроллер #подкласс #форма-данные

Вопрос:

У меня 2 класса. И я использую класс firts в другом классе.

 public class Adres {  public int? ID { get; set; }  public string Sehir { get; set; }  public string Ilce { get; set; }  public string Mahalle { get; set; }  public string Sokak { get; set; } }  public class User {  public int? ID { get; set; }  public string UserName { get; set; }  public string Password { get; set; }  public Adres UserAdres { get; set; } }  

У меня есть эта функция в контроллере

 public ActionResult Kaydet(Users.User prm_query) {  int? ID = prm_query.ID;  string UserName = prm_query.UserName;  string Sehir = prm_query.UserAdres.Sehir;    ..... }  

Когда я публикую данные С помощью jQuery, я использую этот код, и он хорошо работает.

 $.post("/Users/Kaydet", {  ID: 1,  UserName: 'Emre',  Password: '112233',  UserAdres: { ID: 1, Sehir: 'Istanbul', Ilce: 'Kadikoy', Mahalle: 'Kemal', Sokak: 'Yok' } }, function (Result) {   // ..... });  

Но я хочу отправить эти данные с помощью FormData, и я пытаюсь это сделать, но это не работает.

 var formdata = new FormData(); formdata.append('ID', 1); formdata.append('UserName', 'Emre'); formdata.append('Password', '112233'); formdata.append('UserAdres', { ID: 1, Sehir: 'Istanbul', Ilce: 'Kadikoy', Mahalle: 'Kemal', Sokak: 'Yok' });  $.ajax({  type: 'POST',  url: '/Users/Kaydet',  dataType: 'json',  processData: false,  contentType: false,  data: formdata }).done(function (Result) {   // ...  });  

Когда я запускаю этот код, в имени пользователя контроллера вводится пароль, но имя пользователя всегда равно нулю. Как я могу опубликовать этот подкласс с помощью FormData?

Ответ №1:

я понял, как это сделать. Если я напишу его следующим образом, он будет легко соответствовать на стороне контроллера. но я не смог решить еще одну проблему, о которой написал ниже

 formdata.append('UserAdres.ID', 1).val()); formdata.append('UserAdres.Sehir', 'Istanbul').val()); formdata.append('UserAdres.Ilce', 'Kadikoy').val());  

но если подкласс представляет собой список, как показано ниже, я не смог найти, как добавить его в данные формы

 public class User {  public int? ID { get; set; }  public string UserName { get; set; }  public string Password { get; set; }  public Listlt;Adresgt; UserAdres { get; set; } }  

Я попробовал это, но это не сработало, это не соответствовало на стороне контроллера

 $.each($('#cmb_modal_user_citys').val(), function (i, Item) {   formdata.append('UserAdres.ID', i).val());  formdata.append('UserAdres.Sehir', 'Sehir-'   i).val());  formdata.append('UserAdres.Ilce', 'Ilce-'   i).val());  });