다음 코드로 뚱뚱한 두통 세션을 겪고 있는데 누군가가 나를 도울 수 있는지 궁금해하고있었습니다.예상 값은 디버그 모드에서 코드를 실행할 때만 발생하지만 디버깅하지 않을 때 중단되며 어떻게 해결할 수 있습니까?
프로젝트라는 폴더에 Details.aspx라는보기가 있습니다. 자세히보기 내부에는 다음과 같은 핵심 코드가있어 두통을 겪고 있습니다.
<p>
<input type="submit" class="submit small" value="Add Issue" onclick="return IssueSubmitForm()"/>
or <a href="">cancel</a></p>
그리고 내가
<script type="text/javascript">
var PostBackUrl = "<%:ResolveUrl("~/Issue/AddIssue")%>";
//Front-end Validation here
function IssueSubmitForm() {
var PostBackData = {
Title: $("input[name=Title]").val(),
Details: $("textarea[name=Details]").val(),
ReportedBy: $("input[name=ReportedBy]").val(),
Priority: $("select[name=Priority]").val(),
ProjectID: Global_ProjectID
};
$.post(PostBackUrl,PostBackData);
}
</script>
AddIssue
라는 방법으로, IssueController라는 내 컨트롤러에 얘기를 좀 더 자바 스크립트가 있습니다
양식 태그 내부
<script type="text/javascript">
var Global_ProjectID = <%:Model.ProjectID%>; //Gets the project ID from Project Table In model
</script>
(<form action="<%: ResolveUrl("~/Issue/AddIssue") %>" method="post">
는) 다음 코드를 상주
다양한 웹 컨트롤의 양식에 입력 된 정보와 Global_ProjectID의 값을 가져옵니다.
내 컨트롤러에서는 다음과 같은 방법은
[HttpPost]
public ActionResult AddIssue(Models.Issue issue)
{
Models.Issue newIssue = new Models.Issue()
{
Title = issue.Title,
DateLogged = DateTime.Now,
Status = 0,
ReportedBy = issue.ReportedBy,
Priority = issue.Priority,
ProjectID = issue.ProjectID,
};
return View("SomeOtherViewSomewhere");
}
지금 여기에 이상한 부분입니다 내 자바 스크립트에서 호출되는 하나입니다.
내 모든 필드 (예 : title, reportedby 등)는 필자가 입력해야하는대로 채워집니다. 즉, 실제로 양식에 채운 데이터가 포함될 것으로 예상됩니다. ProjectID는 실제로 정수 값을 포함해야하는 경우 항상 null입니다.
내 브라우저에서 내 자바 스크립트에 디버거를 활성화하면 ProjectID에 채워지는 것을 알았고 다음 코드를 추가 한 경우 Alert(Global_ProjectID);
코드를 사용하여 필요한 값으로 팝업됩니다.
그러나 이러한 코드 세그먼트를 디버깅하지 않고 실행하면 ProjectID는 항상 null입니다. 그것은 슬프게도 반복적으로 사용해야하는 값이며, null은 단순히 수행하지 않을 것입니다.
이 코드를 수정하려면 어떻게해야합니까? 나는 다른 프로그래머들도 그것을 보았고, 그들은 내가 그랬던 것만 큼 혼란 스러웠다.
지금은 백만 가지를 시도했습니다. 폼 태그에서 액션을 제거하면 컨트롤러 메소드가 실행되지 않고 내가 가지고있는 것과 같은 페이지가 되돌려 보내집니다. $ .post 앞에 경고를 남기면 모든 시간이 필요합니다. 데이터베이스에 값을 저장할 때 임의로 값이 표시되거나 null 인 경우 (이상한 이유로) – Eon
을 다시 결정합니다. 또 다른 tumbleweed가 나타납니다. 담배를 피울 수 있습니다. < – Eon