일부 MVC를 배우려고하므로 마스터/세부 정보 저장 양식이있는 웹 페이지를 만들었습니다. 내 문제는 다음과 같습니다 나는이 오류 메시지가 : 나는 세부 정보를 저장하기 위해 컨트롤러 액션에 foreach()
를 추가 할 때MVC 마스터 세부 정보 저장 오류
SERVER ERROR - The server encountered an unexpected condition that prevented it from fulfilling the request. (XHR): POST
. foreach()
없이 작동합니다.
임 데이터베이스 접근법을 사용합니다.
CREATE TABLE [dbo].[TicketMaster] (
[TicketID] INT IDENTITY (1, 1) NOT NULL,
[Titel] VARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([TicketID] ASC)
);
및
CREATE TABLE [dbo].[TicketDetails] (
[TicketDetailsId] INT IDENTITY (1, 1) NOT NULL,
[TicketID] INT NOT NULL,
[ItemName] VARCHAR (50) NOT NULL,
PRIMARY KEY CLUSTERED ([TicketDetailsId] ASC),
CONSTRAINT [FK_TicketDetails_TicketMaster] FOREIGN KEY ([TicketID])REFERENCES [dbo].[TicketMaster] ([TicketID])
);
내 뷰 모델 :
public class TLSModel
{
public string Titel { get; set; }
public List<TicketDetail> TicketDetails { get; set; }
}
JQuery와 :
$(document).ready(function() {
var list = [];
$('#add').click(function() {
list.push({
ItemName: $('#ItemName).val().trim()
});
$('#ItemName).val('').focus();
GeneratedItemsTable();
});
$('#submit').click(function() {
var data = {
Titel: $('#Titel').val().trim(),
TicketDetails: list
}
$.ajax({
url: '/Ticket/Create',
type: "POST",
data: JSON.stringify(data),
dataType: "JSON",
contentType: "application/json",
success: function (d) {
if (d.status == true) {
alert('Successfully done.');
list = [];
$('#Titel').val('');
}
else {
alert('Failed');
}
$('#submit').val('Save');
},
error: function() {
alert('Error. Please try again.');
$('#submit').val('Save');
}
});
});
function GeneratedItemsTable() {
...some Code...
}
});
이
내 테이블입니다컨트롤러 작업 :
public JsonResult Create (TLSModel T)
{
bool status = true;
TicketMaster ticket = new TicketMaster { Titel = T.Titel };
foreach(var i in T.TicketDetails)
{
ticket.TicketDetails.Add(i);
}
db.TicketMasters.Add(ticket);
db.SaveChanges();
return new JsonResult { Data = new { status = status } };
}
스왑을 시도했지만 여전히 같은 오류가 발생했습니다 ... – m3dix
작동 코드를 게시 할 수 있습니까? 어쩌면 먼저 티켓 객체를 저장 한 다음 db.TicketMasters.FirstOrDefault (x => x.Titel == T.Titel)를 사용하여 컨텍스트에서이 엔티티를 다시 가져 오십시오. 그런 다음 foreach 루프를 실행하고 SaveChanges()를 다시 시도하십시오. – mateudu
여전히 같은 오류가 발생합니다. 세부 정보를 저장하지 않는 것만 제외하면 foreach 루프와 작동중인 항목을 삭제하십시오. – m3dix