Я отправляю данные формы данных на контроллер MVC, но когда я отправляю запрос, иногда данные формы преобразуются в строку запроса или пропускают некоторые значения.
Когда я отлаживаю свой код в Chrome, запрос отправляется на сервер, но иногда он не включает cityid и изображение в запросе.
Это моя функция добавления jQuery:
function add()
{
var formdata = new FormData();
var imagefile = $('#imageuploaded')[0].files[0];
formdata.append('name', $('#name').val());
formdata.append('lastname', $('#lastname').val());
formdata.append('address', $('#address').val());
formdata.append('imageuploaded', imagefile);
for (var i = 0; i < formvalues.cityid.length; i++)
{
formdata.append('cityid['+i+']', formvalues.cityid[i]);
}
$.ajax({
url: "/Practice/insertemployee",
type: "Post",
contentType: false,
processData: false,
data: formdata,
success: onsccessinsert,
error:onerrorinsert
});
}
Мой контроллер:
public JsonResult insertemployee(People people,HttpPostedFileBase
imageuploaded)
{
var name= imageuploaded.FileName;
var folderpath = Server.MapPath(@"\Images\");
string guid = new Guid().ToString();
var fullpath = folderpath +guid+ name;
people.fullimagepath = fullpath;
people.shortimagepath=@"\Images\"+guid+name;
imageuploaded.SaveAs(fullpath);
return Json(PracticedbcontexController.insertintodb(people), JsonRequestBehavior.AllowGet);
}
И, наконец, разметка представления:
<form id="peopleform" enctype="multipart/form-data" >
<div class="form-group">
<input type="hidden" id="id" />
<label>name</label>
<input type="text" class="form-control" id="name" name="name" />
</div>
<div class="form-group">
<label>lastname</label>
<input type="text" class="form-control" id="lastname" name="lastname" />
</div>
<div class="form-group">
<label>address</label>
<input type="text" class="form-control" id="address" name="address" />
</div>
<select id="listofcities" onchange="citiesselected()">
<option value="1">karachi</option>
<option value="2">hyderabad</option>
<option value="3">larkana</option>
</select>
<div class="form-group">
<input type="file" id="imageuploaded" name="imageuploaded" class="form-control" />
</div>
<ul id="cityid"></ul>
<button id="submitform" class="btn btn-primary" onclick="add()">submit</button>
</form>
Когда я отправляю запрос на сервер, запрос преобразуется в строку запроса вместо объекта formdata. Когда я отлаживаю и отправляю запрос, кажется, что отсутствуют некоторые данные. Я проверил все значения, прикрепленные к formdata.