【问题标题】:How do I refer to an html id in code?如何在代码中引用 html id?
【发布时间】:2012-06-20 20:17:37
【问题描述】:

我有这样的事情:

<form  id="Form1"> ... </form>

如何在我的 C# 代码隐藏中引用此表单?我尝试简单地使用“Form1”,但它给了我一个错误。谷歌搜索也没有帮助。

我想要实现的是在谷歌结帐“立即购买”按钮上动态输入商品名称或其中一个字段。请参阅:How to subscribe to click event of html form?

【问题讨论】:

  • @SteveB 例如在此处更改文本。
  • 您的编辑有助于我们了解您的要求。这是一个完美的例子,说明为什么说你想做什么很重要,而不是如何(或至少不仅如此)。 @Curt 的回答反映了这一点。起初他准确地回答了你的问题,然后,在你的编辑改变了问题的含义之后,他给出了一个非常详细的答案。总而言之,请始终记住,这里的人不在您的脑海中,并且毫不犹豫地提供超出要求的详细信息。

标签: asp.net html asp.net-4.0


【解决方案1】:

你需要运行表单服务器端:

<form id="Form1" runat="server> ... </form>

但是,如果您使用的是 ASP.NET Web 表单,则每个运行服务器端的 Web 表单只能有 1 个表单。


编辑:看到您的编辑后,我建议您使用Response.Redirect()将值发布到您网站上的独立值:

Response.Redirect("GoogleCheckout.aspx?field=" + fieldvalue);

然后在这个独立页面上有以下内容:

<form action="https://sandbox.google.com/checkout/..." id="Form1" method="post" name="..." target="_top">
<input name="item_name_1" type="hidden" value="<%= Request.Querystring["field"] %>" />
...
<input alt="" src="https://sandbox.google.com/checkout/buttons/buy.gif?merchant_id=..." type="image" />
</form>

然后使用 javascript/jquery 自动发布这个表单 onload:

$("form").submit();

这解决了每页只有 1 个表单的问题。

【讨论】:

  • 我确实试过了。但即使只有一种形式,它也不起作用。但是该页面正在使用具有表单的母版页。这可能是问题吗?
  • @ispiro 是的,这就是问题所在。您不能使用超过 1 个在服务器上运行的表单(.NET Web 表单的主要限制之一)。也许在此处发布有关您要实现的目标的更多详细信息。您现有的母版页表单可能有足够好的解决方法。
  • 谢谢。我还没有尝试过,但这似乎是答案。感谢您提供详细信息。我一个人做不到。顺便说一句——有没有办法从 FormLoad 的代码隐藏中提交第二页?
  • @ispiro 我不知道,但可能值得研究
【解决方案2】:

添加 runat="server" 以使该标签在代码隐藏中可见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多