我试图将nom的值输入StudentListByFilter(),任何人都可以帮我这些吗?默认值返回0.我想将查询字符串(nom)插入StudentAttendanceList(),但值为0.
public partial class AttedanceManagementJT : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//int nom = Convert.ToInt32(Request.QueryString["ActivityId"]);
}
[WebMethod(EnableSession = true)]
public static object StudentListByFilter()
{
return ApplyMethods.StudentAttendanceList(Convert.ToInt32(HttpContext.Current.Request.QueryString["ActivityId"]));
}
答案 0 :(得分:1)
您无法将值“传递”给其他方法的原因是它不是另一种方法。它是一个“页面方法”,它在一个单独的请求中运行。在第二个请求中,没有“ActivityId”查询字符串参数。
但是,您可以将查询字符串参数从第一个请求(通过会话状态)传递到第二个请求:
public partial class AttedanceManagementJT : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int nom = Convert.ToInt32(Request.QueryString["ActivityId"]);
Session["nom"] = nom;
}
[WebMethod(EnableSession = true)]
public static object StudentListByFilter()
{
return ApplyMethods.StudentAttendanceList(
Convert.ToInt32(HttpContext.Current.Session["nom"]));
}
}
答案 1 :(得分:0)
在我的情况下,使用或不使用某些参数调用页面,会话将保留上一次调用的值 - 这将导致问题。 我发现在我的情况下更稳定的解决方案是在页面上有一些隐藏字段,在pageload上将参数保存到它,然后将此值从客户端javascript传递给webmethod作为附加参数。