我对以下代码感到头疼,想知道是否有人可以帮助我。
我有一个名为 Details.aspx 的视图,位于名为 project 的文件夹中。在详细信息视图中,我有以下关键代码片段,这让我很头疼。
<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">
) 中包含以下代码:
<p>
<input type="submit" class="submit small" value="Add Issue" onclick="return IssueSubmitForm()"/>
or <a href="">cancel</a></p>
然后我有更多的 Javascript 可以与我的控制器 IssueController 对话,方法是 AddIssue
<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>
这将获取输入到表单中的信息(来自各种 Web 控件),以及来自 Global_ProjectID 的值
在我的控制器中,以下方法是从我的 javascript 调用的方法
[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");
}
现在这是奇怪的部分。
我的所有字段(如标题、reportby 等)都按应有的方式填写,即它实际上包含我希望它包含的值——我填写到表单中的数据。当 ProjectID 实际上应该包含一个整数值时,它总是恰好为空。
当我在浏览器中激活我的 javascript 上的调试器时,我看到 ProjectID 确实被填充了,并且如果我添加了以下代码Alert(Global_ProjectID);
,它还会给我一个带有我需要的值的弹出窗口。
但是,当我在不调试的情况下运行这些代码段时,ProjectID 始终为空。可悲的是,这是我必须经常使用的值,而 null 根本行不通
我该怎么做才能修复此代码?我让其他程序员看了一下,他们也和我一样难过。