2016-07-07 106 views
1

我对ASP.Net相当陌生,我被卡住了。 如果我的超链接被点击,应该将一个Command.Value发送到服务器。得到该Command.Value后,后面的代码应该检查它是否正确,并重定向到特定的站点,否则只是重新加载页面。 这里是我的超级链接:通过Javascript发送Command.Value代码隐藏

所有我想问如果我的超链接是正确的
<asp:HyperLink 
ID="Link" 
runat="server" 
Visible="true" 
NavigateUrl="javascript:document.FormServer.Command.value = 
'test';document.FormServer.submit();" 
>Test!!</asp:HyperLink> 

第一。此外,我有点卡在后面的代码,我需要插入我的If声明。

+0

document.FormServer听起来不太熟悉。假设有一个名为“FormServer”的表单,那么你可以做一些像document.forms [“FormServer”]。submit();但document.FormServer.Command.value是我不知道的。你可以发布你的asp.net表单吗? – derloopkat

回答

2

我相信通过GET在链接的url中发送参数要容易得多。但是,如果出于任何原因,你想通过邮政和使用JavaScript做到这一点,然后试试这个。

网页形式: param1是一个隐藏字段,其值将使用Javascript设置。提交表单时,隐藏字段将与表单一起发布。

<form id="FormServer" runat="server" > 
    <input type="text" id="param1" name="param1" style="display:none;" /> 
    <div> 
     <asp:HyperLink 
     ID="Link" 
     runat="server" 
     Visible="true" 
     NavigateUrl="javascript:document.getElementById('param1').value = 'test';document.forms['FormServer'].submit();" 
     >Test!!</asp:HyperLink> 
    </div> 
</form> 

后面的代码:

protected void Page_Load(object sender, EventArgs e) 
{ 
    string param1Value = Request["param1"]; 
    if (param1Value == "test") 
     Response.Redirect("~/Default.aspx"); 
    else if(param1Value == "lost") 
     Response.Redirect("http://www.google.com"); 
} 

在它后面的代码可能会检查this.IsPostBack有用。这告诉你为什么页面被加载。如果这是因为链接被点击,则IsPostBack将为true。

+0

看起来很整齐,只有一个问题:ASP.net在master.page中已经有了一个表单,并且不允许第二个表单在child.page中:/ – Soulrox

+0

通过给出Master.Site-Form ID“FormServer”现在可以工作。 – Soulrox