如何将变量传递给另一个ASP.net页面

时间:2017-03-07 20:37:29

标签: c# html asp.net

好的,所以我有一些c#生成的href锚标签作为列表项设置并将其抛出到aspx页面上,如此;

from Tkinter import *
import random

player = 1
count=0

menu=Tk()

menu.wm_title("Percentage Calculator")

def Calculate():

    global  a1
    global  a2

    global  b1
    global  b2

    global  c1
    global  c2

    global  d1
    global  d2

    tval=int(tvalue.get())
    aval=int(avalue.get())
    cval=int(cvalue.get())
    kval=int(kvalue.get())

    a1v=float(a1.get())
    a2v=float(a2.get())

    total_t=(((a1v/a2v)*100)/tval)

    b1v=float(bl.get())
    b2v=float(b2.get())

    total_a=(((b1v/b2v)*100)/aval)

    c1v=float(cl.get())
    c2v=float(c2.get())

    total_c=(((c1v/c2v)*100)/cval)

    d1v=float(dl.get())
    d2v=float(d2.get())

    total_k=(((d1v/d2v)*100)/kval)

menutext=Label(text="Enter Percentages:",font="Arial 15")
menutext.grid(row=0,column=0,columnspan=4,sticky="NS,WE")

t=Label(text="T",font="Arial 15")
t.grid(row=1,column=0,sticky="NS,WE")

a=Label(text="A",font="Arial 15")
a.grid(row=1,column=1,sticky="NS,WE")

c=Label(text="C",font="Arial 15")
c.grid(row=1,column=2,sticky="NS,WE")

k=Label(text="K",font="Arial 15")
k.grid(row=1,column=3,sticky="NS,WE")

tvalue=Entry(font="Arial 15")
tvalue.grid(row=2,column=0,sticky="NS,WE")

avalue=Entry(font="Arial 15")
avalue.grid(row=2,column=1,sticky="NS,WE")

cvalue=Entry(font="Arial 15")
cvalue.grid(row=2,column=2,sticky="NS,WE")

kvalue=Entry(font="Arial 15")
kvalue.grid(row=2,column=3,sticky="NS,WE")

calcbutton=Button(text=" Calculate ",font="Arial 15",command=Calculate)
calcbutton.grid(row=10,column=0,columnspan=4,sticky="NS,WE")

menutext2=Label(text="Enter Marks:",font="Arial 15")
menutext2.grid(row=3,column=0,columnspan=4,sticky="NS,WE")

a1=Entry(font="Arial 15")
a1.grid(row=4,column=0,sticky="NS,WE")

a2=Entry(font="Arial 15")
a2.grid(row=4,column=1,sticky="NS,WE")

b1=Entry(font="Arial 15")
b1.grid(row=4,column=2,sticky="NS,WE")

b2=Entry(font="Arial 15")
b2.grid(row=4,column=3,sticky="NS,WE")

c1=Entry(font="Arial 15")
c1.grid(row=5,column=0,sticky="NS,WE")

c2=Entry(font="Arial 15")
c2.grid(row=5,column=1,sticky="NS,WE")

d1=Entry(font="Arial 15")
d1.grid(row=5,column=2,sticky="NS,WE")

d2=Entry(font="Arial 15")
d2.grid(row=5,column=3,sticky="NS,WE")


def AnswerDisplay():

    ##this is not complete yet, ignore

    answerlabel=Label(text="Results Are...",font="Arial 15")
    answerlabel.grid(row=7,column=0,columnspan=4,sticky="NS,WE")

    a1ans=Label(text="null",font="Arial 20")
    a1ans.grid(row=8,column=0,sticky="NS,WE")

    b1ans=Label(text="null",font="Arial 20")
    b1ans.grid(row=8,column=1,sticky="NS,WE")

    c1ans=Label(text="null",font="Arial 20")
    c1ans.grid(row=8,column=2,sticky="NS,WE")

    d1ans=Label(text="null",font="Arial 20")
    d1ans.grid(row=8,column=3,sticky="NS,WE")


menu.mainloop()

现在这是一个循环,变量从SQL数据库中提取并用于填充该html字符串。

现在,我正在尝试做的就是当用户点击其中一个生成的href并重定向到下一页时,变量inspectionID会向前传递。我以为可能会将它存储在href标签的ID中,但我不知道从那里去哪里。

非常感谢。

2 个答案:

答案 0 :(得分:4)

添加query string参数。

string inspectionID = Request.QueryString["inspectionID"];

在接收页面上阅读:

<!-- possible values: universal,postgis,db2,mysql,oracle -->
<spatialExtension name="pgraster"/>
<mapping>
<masterTable name="mosaic" >
    <coverageNameAttribute name="name"/>
    <maxXAttribute name="maxx"/>
    <maxYAttribute name="maxy"/>
    <minXAttribute name="minx"/>
    <minYAttribute name="miny"/>
    <resXAttribute name="resx"/>
    <resYAttribute name="resy"/>
    <tileTableNameAtribute name="tiletable" /> 
</masterTable> 
<tileTable> 
    <blobAttributeName name="rast" /> 
    <keyAttributeName name="rid" />
    <textAttributeName name="metadata" />
</tileTable>
</mapping>

请参阅 https://msdn.microsoft.com/en-us/library/system.web.httprequest.querystring(v=vs.110).aspx

答案 1 :(得分:1)

一种非常简单的方法是坚持查询字符串。由于这不是服务器控件,因此它可能是唯一的方法。

类似......

html += "<a href='../InspectionView.aspx?InspectionID="+HttpUtility.UrlEncode(Inspection_ID.ToString())+"&anyotherQSField="+HttpUtility.UrlEncode(anyotherQSFieldVariable) + "' class='list-group-item'> - Due Date: " + inspDueDate + " - Inspector(s): Bob Williams <span style='min-width:75px' class='label label-primary pull-right'>" + status + "</span></a>";

然后在InspectionView.aspx中,获取类似于:

的值
String strInspection_ID = Request.QueryString["InspectionID"];

您可能需要转换为字符串才能使用此ID。 你不必为Inspection_ID使用HttpUtility.UrlEncode,但如果你想在QS中使用其他可能包含空格或其他奇数字符的字符串 - 这将是明智的。