【发布时间】:2018-11-21 01:33:42
【问题描述】:
我尝试在用户提交表单时将数据插入数据库,但仍然没有运气
我在浏览器中检查了控制台没有错误。
我一步一步调试了我的 JsonResult,我可以看到 Model Contains data 和 ModelState 它的 true ,但是
当我调试我的 JsonResult 时,我可以看到 Id Contains 0(也许 Id 是 0 会导致问题?!)并且在我看到这个之后,我在我的 Controller 和我的 Ajax 中都做了 if/else 语句,但仍然无法工作.
我还将 Id 存储在 Json 结果中的 ViewBag.ID 中,而不是在 View 中,我将输入字段类型隐藏并将 ViewBag.ID 作为值存储在输入字段中。
谁能指出我正确的方向?!
控制器:
[HttpPost]
public JsonResult ProcessRequestRMA(RMA_History model)
{
ViewBag.ID = model.Id;
if (ModelState.IsValid)
{
if (ViewBag.ID == 0)
{
db.RMA_History.Add(new RMA_History
{
Id = ViewBag.ID,
Kundenavn = model.Kundenavn,
Ordrenummer = model.Ordrenummer
});
db.SaveChanges();
}
}
return Json(model, JsonRequestBehavior.AllowGet);
}
AJAX:
<form>
<input name="Ordrenummer" type="text" id="Ordrenummer" >
<input name="Kundenavn" type="text" id="Kundenavn" >
<input type="hidden" name="Id" id="Id" value="@ViewBag.ID" />
<button id="btn" type="submit">Send</button>
</form>
<script>
$(document).ready(function () {
$("#btn").click(function (e) {
e.preventDefault();
return myfunction();
});
function myfunction() {
var model = {
Kundenavn: $("#Kundenavn").val(),
Ordrenummer: $("#Ordrenummer").val(),
Id: $("#Id").val()
}
$.ajax({
type: 'POST',
url: "/Account/ProcessRequestRMA",
dataType: 'json',
data: {
Kundenavn: model.Kundenavn,
Ordrenummer: model.Ordrenummer,
Id: model.Id
},
beforeSend: function (status) {
if (model.Id == 0) {
status.Id = model.Id
status.Kundenavn = model.Kundenavn;
status.Ordrenummer = model.Ordrenummer;
console.log("Send");
}
else {
alert("Something Wrong");
}
},
success: function (run) {
if (run) {
console.log("Send success");
}
else {
alert("Something wrong in success");
}
},
error: function () {
console.log('something went wrong - debug it!');
}
});
}
});
</script>
型号:
public class RMA_History
{
public int Id { get; set; }
public string Kundenummer { get; set; }
public string Ordrenummer { get; set; }
//Table & Column Mappings
//Stuff here
//Key
HasKey(t => t.Id);
}
【问题讨论】:
标签: jquery ajax asp.net-mvc database