【发布时间】:2017-09-28 08:27:33
【问题描述】:
MVC 新手。
情景是。使用第三方上传图片库。提交表单时,我想通过 ajax 进行调用以提交数据并返回插入的项目 ID。然后,我将该 ID 用于第 3 方上传库来构建将图像上传到的文件夹。
我有 ajax 调用工作并将数据插入数据库并获取插入的 ID。但是当调试从控制器返回时,它会将 id 呈现为整个页面。
我认为这里缺少 MVC 的基本内容。
cshtml文件:
<div class="col-md-8">
<input type="submit" value="Add Item" id="submitItem" />
<script>
$(document).ready(function () {
$("#submitItem").submit(function () {
event.preventDefault();
insertData();
});
});
function insertData()
{
var requestData = {
userID: $("#hdnUserID").val(),
title: $("#title").val(),
typeID: $("#typeID").val(),
description: $("#description").val()
};
$.ajax({
url: '<%= Url.Action("ItemUserDashBoard", "Home") %>',
type: 'post',
data: JSON.stringify(requestData),
dataType: 'json',
success: function (data) {
// your data could be a View or Json or what ever you returned in your action method
// parse your data here
alert(data);
$("#fine-uploader-gallery").fineUploader("uploadStoredFiles");
},
processData: false
});
}
</script>
</div>
HomeController.cs
[HttpPost]
public JsonResult ItemUserDashBoard(ItemAppraise.Models.iaDashBoardModel objItemUserDashBoard)
{
if(ModelState.IsValid)
{
using (dbContext)
{
ia_items iaItem = new ia_items
{
userID = objItemUserDashBoard.iaItems.userID,
typeID = objItemUserDashBoard.iaItems.typeID,
title = objItemUserDashBoard.iaItems.title,
description = objItemUserDashBoard.iaItems.description,
lastUpdate = DateTime.Now
};
dbContext.ia_items.Add(iaItem);
dbContext.SaveChanges();
//objItemUserDashBoard.iaItems.itemID = iaItem.itemID;
return Json(iaItem.itemID.ToString());
}
}
else{
return null;
}
}
Fiddler 显示它具有 Content-Type: application/json; charset=utf-8.
但页面在控制 url 'http://localhost:55689/Home/ItemUserDashBoard' 下呈现,仅显示项目 ID。
如何取回数据以便在 ajax 调用的成功部分使用而不被渲染?这是部分视图还是类似的东西?
感谢任何指导。
【问题讨论】:
标签: json ajax asp.net-mvc