说,比如我已经在asp.net mvc的形式以下按钮3应用:如何在ASP.NET MVC的按钮的自定义属性中获得的价值
<input type="submit" name="command" value="Click me" data-custom="D" />
我知道如何从按钮获取值..但是,我是否在操作方法中获取数据自定义attr值?非常感谢你!!
编辑:
我要指出,我不能使用JavaScript在所有的,因为这是网站对于不支持JavaScript的设备的移动版本..
说,比如我已经在asp.net mvc的形式以下按钮3应用:如何在ASP.NET MVC的按钮的自定义属性中获得的价值
<input type="submit" name="command" value="Click me" data-custom="D" />
我知道如何从按钮获取值..但是,我是否在操作方法中获取数据自定义attr值?非常感谢你!!
编辑:
我要指出,我不能使用JavaScript在所有的,因为这是网站对于不支持JavaScript的设备的移动版本..
但是做我在动作方法中获取数据自定义attr值?
不,你不知道。 HTML规范中没有任何内容表明在提交表单时应将数据属性发送到服务器。所以,如果你想获得这个价值,你将需要使用JavaScript。一种技术是订阅表单的提交事件,然后自动向该表单中注入隐藏字段,该表单将从提交按钮的data-*属性填充。这样该值将被发送到服务器。
但是由于我怀疑你要在这里实现的是,你有多个提交按钮,你想知道你的控制器动作中点击了哪个按钮。在这种情况下,你可以使用以下命令:
<button type="submit" name="btn" value="S">Save</button>
<button type="submit" name="btn" value="D">Delete</button>
...
,然后让你的控制器动作,像是叫btn
参数。
但是我个人更喜欢使用单独的动作,否则它会使控制器动作非常丑陋,因为它会包含很多if语句。这里有一个nice blog post我会邀请你去结账。
自定义属性不会通过get或post传递;只有值才能做到。
您可以在提交之前从客户端抓取自定义属性值(例如使用jQuery .attr()函数)并将其添加到表单数据中。
我正在构建一个移动应用程序,它应该支持启用JavaScript的设备以及不支持JavaScript的旧设备。我已经使用jquery mobile开发了javascript版本。但是我不允许在这个项目中使用jquery。我知道如何通过JavaScript获得该值..任何想法? – Dragan
为什么不是隐藏的输入? –
只有表格元素的值和名称张贴在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"));
});
从你的操作方法,使用data.split("$$$")[1]
得到data-custom
。
希望这会有所帮助
我更新了我的问题。我不允许使用任何JavaScript .. – Dragan
BINGO !!我不知道你可以这样设置按钮的文字!非常感谢Darin。 Pozdrav od Makedonija :) - 我会在4分钟内将您的答案标记为正确。所以zdravje – Dragan