我有一个带有按钮的aspx页面来调用C#方法。按钮属性是:
<asp:Button ID="btnSubmit" runat="server" Text="Search" OnClientClick="BuildTheYear()" />
当我点击按钮时,我运行我的javascript,最后一步是调用C# protected void Button1_Click(string caseNumber)方法。
为此,我尝试使用javascript
:
function BuildTheYear() {
var year = document.getElementById('cYear').value;
if (year.length != 4) {
alert('Please enter a 4 digit year only');
return;
}
var number = document.getElementById('cNumber').value;
var checkNumberValue = (number.charAt(0));
if (checkNumberValue === "0") {
alert('Please do not enter any zero (0) values before the case number!');
return;
}
var SearchNumber= year + "-" + number;
$.ajax({
type: "POST",
url: "Home.aspx/Button1_Click",
data: "{s:SearchNumber}",
contentType: "application/json; charset=utf-8",
dataType:"json"
})
return;
}
我做了一些数据验证,以确保最终结果是我需要的,并且一切都适合我,我最终得到一个名为year的变量,格式为2017-123456。我想把这个变量传递给C#方法,它看起来像这样:
protected void Button1_Click(string caseNumber)
{
if (CheckCaseNumber(caseNumber))
{
Response.Redirect("~/Forms/InvWithTips2?CaseNumber=" + caseNumber, true);
}
else
RadAjaxManager1.ResponseScripts.Add(string.Format("window.radalert(\"That casenumber was not found. Please enter valid case number!\")"));
}
然后这些方法将打开另一个aspx Web表单,通过我的javascript作为查询字符串传递字符串。
我正在使用Visual Studio,当我运行应用程序并单击提交按钮时,系统会提示我输入我的域凭据。我已经在方法上设置了一个断点,但我没有到达那里。
任何帮助都将不胜感激。
答案 0 :(得分:2)
您可以删除ajax调用,只添加服务器端事件。服务器端事件将在客户端
之后调用<asp:Button ID="btnSubmit" runat="server" Text="Search" OnClick="Button1_Click" OnClientClick="BuildTheYear()" />
此外,如果您想要发出警报错误而不是触发服务器端操作。
你应该这样:
function BuildTheYear() {
var year = document.getElementById('cYear').value;
if (year.length != 4) {
alert('Please enter a 4 digit year only');
return false;
}
var number = document.getElementById('cNumber').value;
var checkNumberValue = (number.charAt(0));
if (checkNumberValue === "0") {
alert('Please do not enter any zero (0) values before the case number!');
return false;
}
return true;
}
代码return false;
将停止服务端操作。