开发者问题收集

通过 Javascript 将 Command.Value 发送到代码隐藏

2016-07-07
112

我对 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个回答

我相信通过 GET 在链接的 URL 中发送参数要容易得多。但是,如果出于某种原因您想通过发布并使用 javascript 来执行此操作,请尝试此方法。

Web 表单: 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 将为真。

Daniel Manta
2016-07-07