【问题标题】:getting data from hidden textbox in a View using MVC使用 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 隐藏文本框(可见性:隐藏;),您应该只使用隐藏的输入字段:
  • 好的,我如何将数据获取到控制器?

标签: asp.net-mvc view input controller


【解决方案1】:

为什么不把字段放到 ViewModel 中呢?然后你可以使用:

@Html.HiddenFor(m => m.Awayid)
@Html.HiddenFor(m => m.Homeid)

当您发布它时,值将位于model.Awayidmodel.Homeid

你这样做的方式,我认为它不起作用,因为“id”在 html 和操作上是不同的。

HTML: hiddenAwayid
行动:hiddenAway

【讨论】:

  • html id 不影响提交的 POST 键名。该字段的名称是模型绑定的,并且在表单字段和控制器操作之间匹配。必须检查,但最初的猜测是,因为他绑定了一个单独的模型,简单的属性没有从 POST 绑定 - 它正在尝试对它们进行路由绑定。将它们移入 StatisticModel 可能会解决问题。
【解决方案2】:

更好的解决方案是将隐藏输入与对象值类似

@Html.Hidden("hiddenAway",(value))

或者您可以使用这 2 个名称在模型中再创建 2 个属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    相关资源
    最近更新 更多