2017-02-20 8 views
0

Я разрабатываю приложение MVC 5.

У меня есть Parent View, которые вызывают Partial View, чтобы изменить изображение.

Вот мой призыв к частичным видом ...

$('formPhoto').submit(function(event) { 
    event.preventDefault(); 
    if ($(this).valid()) { 
     var formdata = new FormData($(this).get(0)); 
     $.ajax({ 
      url: this.action, 
      type: this.method, 
      data: formdata, 
      processData: false, 
      contentType: false, 
      beforeSend: function() { 
       alert(1); 
      }, 
      success: function(result) { 
       successPhoto(result); 
      }, 
      complete: function() { 
       // alert(3); 
       // And so on. 
      } 
     }); 
    } 
    return false; 
}); 

Мой Частичный вид выглядит так

My Partial View looks like this

Моя форма называется "FormPhoto". Я определил функцию Ajax для отправки следующим образом.

$('formPhoto').submit(function(event) { 
    event.preventDefault(); 
    if ($(this).valid()) { 
     var formdata = new FormData($(this).get(0)); 
     $.ajax({ 
      url: this.action, 
      type: this.method, 
      data: formdata, 
      processData: false, 
      contentType: false, 
      beforeSend: function() { 
       alert(1); 
      }, 
      success: function(result) { 
       successPhoto(result); 
      }, 
      complete: function() { 
       // alert(3); 
       // And so on. 
      } 
     }); 
    } 
    return false; 
}); 

Эта функция не выполняется при отправке.

Что мне не хватает?

Кроме того, я пытаюсь получить Частичный вид данных с помощью

Var FormData = новые FormData ($ (это) .get (0));

Но я думаю, что это неправильно.

Любые идеи?

Tahnks?

+0

Никогда не размещать код в виде изображения. Не используйте фрагменты кода, который не работает в любом случае; просто отступом на 4 пробела, чтобы показать код. Также: устранение неполадок. Поместите 'alert()' s в свой код, чтобы убедиться, что он вызывается вообще. Перечитайте документы, которые вы используете (например, jQuery). –

ответ

2

Вы должны использовать JQuery идентификаторselector:

$('#formPhoto') 

вместо

$('formPhoto') 

Кроме того, я пытаюсь получить Частичный вид данных с помощью var formdata = new FormData($(this).get(0));

Здесь вы создаете a FormData объект который содержит form детали.

var formdata = new FormData($(this)[0]); - Это автоматически представит элементы формы в FormData, и вам не нужно вручную добавлять данные в переменную FormData.

Вот пример:

$('button').click(function(){ 
 
    var formData=new FormData($('#myForm').get(0)); 
 
    console.log(formData.get('input1')); 
 
    console.log(formData.get('input2')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="myForm"> 
 
    <input type="text" value="test" name="input1"/> 
 
    <input type="text2" value="test2" name="input2"/> 
 
    <button type="submit">Save</button> 
 
</form>

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