问题标签 [html.hiddenfor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
604 浏览

asp.net-mvc-3 - 迭代时使用 Html.HiddenFor

ViewModel 看起来像这样:

WC有一组相关的TC。它们的关系由包含外键的 TC 映射WCId

在视图中,我有一个表格。在表单中,有 WC 的输入字段。然后,有一组 TC 取决于最大为 4 的计数。每个 TC 都有一个相关的 T,因为 TC 有一个外键TCId。我正在尝试确保在发布表单时 TC 具有相关的TId. TId保存在 W 中的 T 列表中(即)@Model.W.T.ElementAt(someindex).TId

如何利用 lambda 表达式来使用帮助程序在视图中生成这种关系,以便相关控制器可以在 httppost 操作中使用它?

这是我现在正在做的事情:

我想做的是使用@Html.HiddenFor帮助器,但似乎无法让它工作,所以我只是使用了上面稍微动态但仍然硬编码的方法。注意:这可行,但是,我希望它更清洁。

0 投票
0 回答
734 浏览

asp.net-mvc-3 - @Html.HiddenFor() 不保留价值

在我看来,所有数据都来自 viewmodel,viewmodel 包括以下内容:

当我在我的视图中使用它时,如图所示:

它没有保留价值filenameuploadfile 但在我看来,如果我使用@if(Model.uploadfile)它会给我适当的价值

谁能告诉我为什么会这样?我怎样才能保留价值model.filename

0 投票
2 回答
1870 浏览

asp.net-mvc-3 - hiddenFor 助手从动作参数中提取 id,而不是 viewModel

我偶然发现了 ASP.Net MVC 的一个非常奇怪的情况,传递一个“id”作为操作参数和一个“id”隐藏表单元素。我有一个带有“id”参数的动作。这个 id 值代表一个项目。我有一个控制器操作,我正在创建一个数据输入表单,用于将员工分配给传入的项目(我创建一个下拉列表,管理员在其中选择要分配给通过的项目的员工)。通过将员工分配给项目,我创建了一个 ProjectEmployee 记录(项目 id、员工 id 和一个表示组合的 id,它是数据库中的一个身份列)。身份列(名为“id”)也是一个隐藏的表单元素。这是必要的,因为我需要能够在以后编辑项目/员工分配。

无论如何,在为项目创建新员工分配时,项目 id(即传递给操作的“id”)将应用于“id”隐藏表单元素。

我将 117 传递给行动。117 是项目 ID。它被设置为应为 0 的“id”隐藏字段,因为 0 表示新项目/员工分配。

查看模型

数据输入表

因此,@Html.HiddenFor(m => m.Id) 呈现一个隐藏的表单元素,其值为 117。@Model.Id 向 UI 呈现 0。单步执行代码,我可以直观地看到 Id 属性的值是 0。HiddenFor 是如何让它的电线交叉并拉出 117 的值?

这个错误已经进入生产,所以我手上的数据变得一团糟,因为我没有在数据库表中创建新记录,而是在更新现有记录,因为“Id”属性被错误地设置了从 0(表示新记录)到 117(即 projectId),因此正在更新不同的记录。

0 投票
2 回答
1139 浏览

asp.net-mvc-3 - HTML Helpers 和隐藏的 asp .net mvc 3

我正在创建一个简单的博客应用程序。我必须在博客文章中添加评论。我的代码中有一行如下所示:

基本上,我将 Comment.BlogID 设置为 Model.Blog.BlogID

有没有办法使用 HTML.Hiddenfor 来做到这一点。

我尝试了下面的代码,但这不起作用。

0 投票
1 回答
2342 浏览

asp.net-mvc - Html.HiddenFor 和 HiddenInput 属性之间的区别

HiddenFor描述是:为由指定表达式表示的对象中的每个属性返回一个 HTML 隐藏输入元素。

我读到它对于模型/视图模型中的字段很有用,您需要在页面上保留并在进行另一次调用但用户不应该看到时传回。

HiddenInput描述是:表示一个属性,用于指示是否应将属性或字段值呈现为隐藏输入元素。

你能告诉我 HiddenInput 什么时候有用吗?以及何时使用它而不是 Html.HiddenFor?

谢谢!

0 投票
7 回答
135911 浏览

asp.net-mvc - HTML.HiddenFor 值集

它不起作用!如何设置值?

0 投票
1 回答
145 浏览

javascript - JavaScript 仅在停止调试时评估 HiddenFor (ASP MVC4)

我在评估 JavaScript (ASP MVC4) 中的隐藏字段时遇到问题 我在视图中使用模型并且模型中的属性有隐藏输入

我有一个带搜索框的助手,按下回车键我正在搜索。

问题是 var filterByUser 仅在我打开 DeveloperTools 并且浏览器在“调试器”中停止时才具有值。如果工具已关闭,我会收到“参数字典包含方法的不可为空类型‘System.Boolean’的参数‘filterByUser’的空条目”

另一个值 searchValue 在评估中没有问题。

我能做些什么来解决这个问题?谢谢你,丹尼尔

0 投票
5 回答
45887 浏览

asp.net-mvc - 在表单提交时传递整个模型

我知道我可以使用@Html.HiddenFor(m => m.parameter),并且在提交表单时,该参数将传递给控制器​​。我的模型有很多属性。

是否有更短的方法可以一次将整个模型传递给控制器​​,或者我必须每次都一个一个地做?

0 投票
4 回答
1094 浏览

c# - 防止使用 MVC 的 HiddenFor 函数

我在此处此处此处记录了问题,尤其是在此处,在 ASP.NET MVC4 视图中,html 帮助器函数@Html.HiddenFor(m => m.ID)将使用“错误”数据并导致数据损坏。

这是一个巨大的问题,公认的“解决方案”是简单地意识到这一点并围绕它进行设计。我认为这是一个糟糕的解决方案。(顺便说一句,我们使用这样的东西来代替<input type="hidden" value="@Model.ID" />:)

每隔几个月,我或一位同事就会忘记并使用那个 html 帮助程序,在我们追查问题之前,一切都崩溃了……再一次。

我怎样才能避免使用这个功能,以避免将来出错?
- 这不是我们的代码,所以我们不能标记它[Obsolete]
- 我们可以覆盖HtmlHelper,但是为了消除一个功能需要做很多工作
-我可以编写一个单元测试来从视图中挑选出这段代码吗?(如果检测到该呼叫,则测试失败)
- 其他想法?

0 投票
1 回答
1272 浏览

asp.net-mvc-3 - 在 HTTP 发布期间使用隐藏字段重新加载同一页面回发

我有一个视图,用户可以在其中就页面上正在播放的内容视频发表反馈意见。使用以下代码,我可以手动输入 UserID 和 ContentID 并毫无问题地保存到数据库中。

但是,当用户在 HTTP 帖子之前的页面上时,我的模型中实际上有相关变量,称为:

我想将这些作为隐藏字段传递,但是当我尝试执行以下任一操作时:

或者

然后这些值返回 null,尽管在发布之前填充了这些值。我读到了一种手动输入输入标签的解决方法,但是当我这样做时,@Using.HtmlBeginForm 返回一个错误,即未设置为对象的实例

有人可以帮助我了解如何使用发布之前模型中的值将这些值传递到同一页面。