0

给定以下两个按钮:

<button type="submit" name="MyButton" value="Foo">Do Foo</button>
<button type="submit" name="MyButton" value="Bar">Do Bar</button>

单击这些按钮时,除 IE7 及以下版本外的所有浏览器都会发布按钮的值(“Foo”或“Bar”),而 IE7 及以下版本则会发布文本(“Do Foo”或“Do Bar”)。

(这是一个 MVC 项目,但问题并不特定于 MVC。)

该线程有很多答案,但在以下情况下它们都不起作用:

  • 值和文本不同,并且
  • JavaScript 被禁用

我们希望支持灵活的按钮文本,以便企业可以通过我们的 CMS 更改这些文本,而无需更改代码。所以我们不能假设我们的文本和值是相同的。但是我们也不想依赖 JavaScript 来解决这个问题。

但是,我想不出任何方法来解决这个问题,而不需要 JavaScript,或者保持值和文本相同。

4

1 回答 1

0

通常的技巧是关闭名称而不是值。

<button type="submit" name="MyButton_foo" value="Foo">Do Foo</button>
<button type="submit" name="MyButton_bar" value="Bar">Do Bar</button>

然后在提交的表单值中搜索与模式匹配的值/^MyButton_(.*)$/在我几年前写的一篇文章中,有一些针对各种语言(尽管不是 C#)的示例。

于 2013-05-09T14:29:19.253 回答