如何从一个按钮的自定义属性中获取值.净MVC
本文关键字:自定义属性 获取 MVC 按钮 一个 | 更新日期: 2023-09-27 18:14:52
假设我在asp.net mvc 3应用程序的表单中有以下按钮:
<input type="submit" name="command" value="Click me" data-custom="D" />
我知道如何从按钮获取值。然而,我得到数据自定义attr值在一个动作方法?非常感谢!!
编辑:我应该注意,我不允许使用javascript,因为这是一个移动版本的网站的设备,不支持javascript.
然而,我得到数据自定义attr值在一个动作方法?
不,你没有。HTML规范中没有任何内容表明在提交表单时应该将data-*属性发送给服务器。因此,如果你想获得这个值,你需要使用javascript。一种技术包括订阅表单的提交事件,然后自动向表单中注入一个隐藏字段,该字段将由提交按钮的data-*属性填充。这样,该值将被发送到服务器。
但是因为我怀疑你在这里想要实现的是你有多个提交按钮,你想知道哪个按钮在你的控制器动作中被点击。在这种情况下,您可以使用以下命令:
<button type="submit" name="btn" value="S">Save</button>
<button type="submit" name="btn" value="D">Delete</button>
...
,然后让你的控制器动作接受一个名为btn
的参数。
但我个人更喜欢使用单独的动作,否则它使控制器动作非常丑陋,因为它将包含大量的if语句。这是一篇很好的博客文章,我想邀请你去看看
不通过get或post传递自定义属性;
您可以从客户端获取自定义属性值(例如使用jQuery .attr()函数),并在提交表单数据之前将其添加到表单数据中。
据我所知,你不能直接从data-... .获取数据您可以编写javascript来获取此值
只能在form
中发布表单元素的值和名称,不能传递任何data-*
。
您可以考虑使用JavaScript
来解决这个问题。这个想法是以某种方式将data-custom
值合并到您的value
属性。
$("input[type=textbox][data-custom]").each(function(index, value) {
$(value).attr("value", $(value).attr("value") + "$$$" + $(value).attr("data-custom"));
});
从你的action方法中,使用data.split("$$$")[1]
得到data-custom
。
希望能有所帮助