通过Javascript将Command.Value发送到codebehind

时间:2016-07-07 12:17:14

标签: javascript asp.net vb.net

我是ASP.Net的新手,我被困住了。 如果单击我的超链接,则应将Command.Value发送到服务器。获取Command.Value之后,后面的代码应检查它是否正确并重定向到特定站点,否则只需重新加载页面。 这是我的超链接:

<asp:HyperLink 
ID="Link" 
runat="server" 
Visible="true" 
NavigateUrl="javascript:document.FormServer.Command.value = 
'test';document.FormServer.submit();"
>Test!!</asp:HyperLink>

首先,我想问一下我的超链接是否正确。此外,我有点卡在关于我需要插入If语句的位置的代码背后。

1 个答案:

答案 0 :(得分:2)

我相信通过GET在链接的网址中发送参数要容易得多。但是如果出于任何原因你想通过帖子和使用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将为真。