【发布时间】:2019-01-03 07:50:55
【问题描述】:
我正在向 MVC 控制器发送 formdata 数据,但是当我发送请求时,有时 formdata 会转换为查询字符串或缺少某些值。
当我在 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 的值。
【问题讨论】:
-
能否也提供您的查看代码
-
@maximelian html 代码?
-
c# 在使用 mvc 时查看代码
-
请也粘贴请求数据。
标签: javascript c# jquery html asp.net-mvc