使用 MVC 从视图中的隐藏文本框中获取数据
Posted
技术标签:
【中文标题】使用 MVC 从视图中的隐藏文本框中获取数据【英文标题】:getting data from hidden textbox in a View using MVC 【发布时间】:2013-06-10 15:39:44 【问题描述】:我正在尝试将数据从隐藏的输入标签文本框传递到控制器
似乎数据总是以 null 的形式传递。
我的观点:
<input id="hiddenAwayid" type="text" class="resultAway" name="hiddenAway" style="visibility: hidden;"/>
<input id="hiddenHomeid" type="text" class="resultHome" name="hiddenHome" style="visibility: hidden;"/>
我的控制器:
public ActionResult addStatistic(StatisticModel model, string hiddenAway, string hiddenHome)
【问题讨论】:
您使用文本输入而不是隐藏输入有什么原因吗? 你是什么意思?我一直使用这种方法不知道这里的问题 而不是使用 css 隐藏文本框(可见性:隐藏;),您应该只使用隐藏的输入字段: 好的,我如何将数据获取到控制器? 【参考方案1】:为什么不把字段放到 ViewModel 中呢?然后你可以使用:
@html.HiddenFor(m => m.Awayid)
@Html.HiddenFor(m => m.Homeid)
当您发布它时,值将位于model.Awayid
和model.Homeid
。
你这样做的方式,我认为它不起作用,因为“id”在 html 和操作上是不同的。
HTML: hiddenAwayid 行动:hiddenAway
【讨论】:
html id 不影响提交的 POST 键名。该字段的名称是模型绑定的,并且在表单字段和控制器操作之间匹配。必须检查,但最初的猜测是,因为他绑定了一个单独的模型,简单的属性没有从 POST 绑定 - 它正在尝试对它们进行路由绑定。将它们移入 StatisticModel 可能会解决问题。【参考方案2】:更好的解决方案是将隐藏输入与对象值类似
@Html.Hidden("hiddenAway",(value))
或者您可以使用这 2 个名称在模型中再创建 2 个属性。
【讨论】:
以上是关于使用 MVC 从视图中的隐藏文本框中获取数据的主要内容,如果未能解决你的问题,请参考以下文章
asp.net mvc 从视图中的文本框获取数据返回存储过程以编辑记录
从嵌套 recyclerview 的所有输入框中获取所有编辑文本正在获取最新的 recyclerview 项目而不是所有数据