【问题标题】:Passing hidden field value from view to controller with out using form concept在不使用表单概念的情况下将隐藏字段值从视图传递到控制器
【发布时间】:2014-01-01 12:15:47
【问题描述】:

我需要将一些隐藏字段从视图传递给控制器​​。

index.chtml

<div id="root">
................
    @Html.Hidden("HProjectTypeId", "somevalue")
</div>

以上内容不以Html.BeginFormajax形式等任何形式放置。我需要在加载自身时获取这个值。

如果它被放置在一个表单中,这意味着我们可以很容易地从FormCollectionRequest.Form["key"]获取它,但它不是放在一个表单中。

public ActionResult Index()
{
    // here I need to get the hidden field "HProjectTypeId"
}

我希望 JQuery 或 JavaScript 中的一些代码可以做到这一点。

谢谢,

湿婆

【问题讨论】:

  • 如果您使用的是 jquery ajax。将值作为参数传递
  • 不,我不想要 jquery.ajax。我正在发布完整的帖子(即第一次加载页面时)
  • 如果能多贴一些代码就更好了……
  • 对不起,我再次澄清 - 您想在页面首次加载时将隐藏字段值从视图传递给控制器​​......而不是在提交表单时。对???
  • 是的,克里希纳,你是对的

标签: javascript jquery asp.net-mvc forms asp.net-mvc-4


【解决方案1】:

您所处的情况并不完全清楚(例如为什么不是Html.BeginForm中的隐藏字段?),但这里有一些建议:

假设您写入隐藏字段的值首先来自服务器,那么根本不将其写入隐藏字段,而是使用TempData 集合呢?原始操作设置该值,并将其保留在会话中直到下一个请求,使其可用于下一个被调用的操作

...或:

假设表单提交会导致执行索引操作(因为您正在“制作完整的帖子”),您可以使用 JavaScript 将隐藏字段的值复制到另一个包含 的隐藏字段在Html.BeginForm

...或:

同样,您可以使用 JavaScript 将隐藏字段的值写入 cookie,并使用 custom ValueProvider for cookies 在您的操作中访问它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    相关资源
    最近更新 更多