Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# web表单-当重定向在web表单上时,如何将数据从母版页传递到母版页?_C#_Asp.net_Webforms_Response.redirect - Fatal编程技术网

C# web表单-当重定向在web表单上时,如何将数据从母版页传递到母版页?

C# web表单-当重定向在web表单上时,如何将数据从母版页传递到母版页?,c#,asp.net,webforms,response.redirect,C#,Asp.net,Webforms,Response.redirect,在母版页上,我有带有事件的下拉列表。当事件引发时,我想加载/重定向webForm.aspx。在这个webForm.aspx中,我想根据dropDownList所选项目加载数据。同时,我想再次加载dropDownList并选择单击的项目 我创建了一些解决方案,我在母版页上使用Response.Redirectwebform.aspx?courseID=4 这是解决这个问题的好办法吗?我想一定有更好的,但我看不到 感谢您的回答。解决方案之一是使用querystring 第二种方法是:在dropdow

在母版页上,我有带有事件的下拉列表。当事件引发时,我想加载/重定向webForm.aspx。在这个webForm.aspx中,我想根据dropDownList所选项目加载数据。同时,我想再次加载dropDownList并选择单击的项目

我创建了一些解决方案,我在母版页上使用Response.Redirectwebform.aspx?courseID=4

这是解决这个问题的好办法吗?我想一定有更好的,但我看不到


感谢您的回答。

解决方案之一是使用querystring

第二种方法是:在dropdownlist的值上更改您更改某些会话值的值,例如*session[course\u id],然后是Response.Redirectwebform.aspx和restore by session[course\u id]值

关于第二个问题,如何从母版页获取路由值。我将给出简单的解释和一个小例子

在母版页中创建一些方法:

protected void IWantToWarkWithRouteValue(){
    //here you will do something
    //and to take value from routing, just use Session["myValue"] (I will explain this value later)
}
您应该在Page_Load中调用此方法,而不是在Pre_Init或Init中

然后,在your Course.aspx caz'中,使用此处的路由创建下一个方法:

protected void SetCourseSessionFromTheRoute(){
    if (Page.RouteData.Values["courseID"] != null)
        Session["myValue"] = Page.RouteData.Values["courseID"].ToString();
}
并在Page_PreInit中调用此方法:

感谢ASP.NET页面的生命周期,您可以做任何您需要的事情

您可以阅读页面的生命周期

正如我所说,这只是一个例子。你可能会找到更好的解决办法


希望有帮助。

您的主页是否正在检查查询字符串以获取课程ID,并相应地更新下拉列表?在MastePage-页面加载时!我有一个函数,从数据库加载所有内容,若有响应上下文courseID,那个么我读取他的值,并在dropDownList中按值设置活动项,该函数起作用。现在我尝试使用Route系统进行响应,但Page.RouteData.Values[courseID]为字符串;在masterPage中没有任何内容。这取决于,如果在URL中包含值是安全的,那么这是一种完全合法的移动值的方法,这里有一个链接,指向在web表单之间移动数据的所有标准方法:是的,数字是安全的,我正在检查它是否唯一的数字,并且有存储过程。关于第二个问题。有人知道为什么我无法根据我的问题显示RoutedData值吗?从主页发送响应Response.RedirectPage.GetRouteUrlCourseSelected,新建{courseID=ddlCourse.SelectedValue};,选择route registered routes.MapPageRouteCourse,Course/{courseID},~/Course.aspx;并将ddlCourse.SelectedValue=Page.routedData.Values[courseID]作为字符串;在母版中?
protected void SetCourseSessionFromTheRoute(){
    if (Page.RouteData.Values["courseID"] != null)
        Session["myValue"] = Page.RouteData.Values["courseID"].ToString();
}
protected void Page_PreInit(object sender, EventArgs e){
    SetCourseSessionFromTheRoute();
}