我怎样才能得到这个 javascript 来调用我的 C# 方法并传递一个参数
How can I get this javascript to call my C# method and pass a Parameter
我有一个带有调用 C# 方法的按钮的 aspx 页面。按钮属性是这些:
<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 网络表单,将我 javascript 构建的字符串作为查询字符串传递。
我正在使用 Visual Studio,当我 运行 应用程序并单击提交按钮时,系统提示我输入我的域凭据,但没有任何反应。我已经在该方法上放置了一个断点,但我没有到达那里。
如有任何帮助,我们将不胜感激。
您可以删除 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;
将停止服务端操作。
我有一个带有调用 C# 方法的按钮的 aspx 页面。按钮属性是这些:
<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 网络表单,将我 javascript 构建的字符串作为查询字符串传递。
我正在使用 Visual Studio,当我 运行 应用程序并单击提交按钮时,系统提示我输入我的域凭据,但没有任何反应。我已经在该方法上放置了一个断点,但我没有到达那里。
如有任何帮助,我们将不胜感激。
您可以删除 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;
将停止服务端操作。