问题标签 [formcollection]

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 回答
2141 浏览

asp.net-mvc - ASP.NET MVC - 如何将帖子中的 FormCollection 数据传递给另一个操作?

我有一个带有表单的页面“结果”,当单击“提交”时,表单被提交给另一个操作。到现在为止还挺好...

但是,这在用户登录时工作正常。如果没有,他将被重定向到“登录”页面,我的 FormCollection 会丢失其数据。

有没有办法在不使用 TempData 的情况下保留这些数据?

谢谢!!

0 投票
4 回答
4332 浏览

asp.net-mvc - ASP.NET MVC 中 UpdateModel 的正确行为是什么?

我很想知道你们觉得就UpdateModelASP.NET MVC 中的方法而言应该被视为“正确的行为”。

我在这里问的原因可能是,如果这个功能是“设计的”,有人可以澄清为什么它是这样的,也许是一种不同的调用方式来实现所需的功能,我想这就是 90 的方式% 的人希望这能奏效吗?

本质上,我的抱怨在于UpdateModel.

假设您希望通过简单的Save操作方法更新表单,表单上的数据字段反映了数据库中的模型,最初为了保存请求,我们可能会从数据库中获取现有模型,然后更新相关字段哪些已更改,通过发送FormCollection然后更新UpdateModel到我们现有的模型。此功能,但似乎此 DB 填充对象上的任何现有属性正在“重置”;我的意思是,被设置为 null 或初始化默认值,就像它是一个全新的对象一样,除了那些与FormCollection.

这是一个问题,因为对象上存在但不一定存在于表单上的任何现有属性,例如任何子集合或对象、日期或任何非面向 UI 的字段都是空的,给您留下一半填充、更多或由于所有丢失的数据(包括可能现在设置为 0 的 ID 堆栈)而无法保存到数据库的不可用对象。

我认为这是不可取的行为,UpdateModel应该只更新在FormCollection. 这意味着您现有的所有属性都将保持不变,但您的更新将被设置。然而,从目前的推论来看,显然情况并非如此——它似乎实例化了一个全新的对象副本,更新表单的属性,然后返回新对象。

最后,从这个负担的角度来看,保存半复杂表单并保留所有现有对象数据的唯一方法是手动将每个属性与相应的表单属性结合到绝对保证仅更新表单中存在的属性。

我猜,

  1. 那些同意这是设计使然的人,我的形式结合是最好的方式吗?
  2. 或者,你是如何解决这个问题的?

请随时提供您对这些人的想法,谢谢。

这是另一个遭受此问题困扰的人的例子:
Calling UpdateModel with a collection of complex data types reset all non-bound values?

0 投票
2 回答
3432 浏览

ajax - 如何使用 ajax.actionlink 获取表单集合

我有一个控制器,代码如下:

我正在使用 ajax.actionlink 调用此操作。

我的问题是集合为空,不像我使用提交(输入)按钮,formcollection 具有值。

0 投票
3 回答
377 浏览

asp.net-mvc - MVC 发布值

在 asp.net MVC 应用程序中,我们有这样的机制,当我们提交表单并且值有任何问题(验证失败)时,表单会显示回来并保持旧值。它是怎么发生的?这些值保存在哪里?或者他们从 FormCollection 收集。

将获得帮助。

问候帕米德

0 投票
1 回答
405 浏览

c# - MVC 中的通用对象控制器,你能改进我的代码吗?

我正在创建一个应用程序,它将显示数据网格中的对象列表(任何类型的对象的列表),并允许用户更新任何项目。代码在运行之前对正在显示的对象一无所知。你能改进我的更新代码吗?我正在使用 Formcollection 从表单中获取项目并根据路由信息创建我的类的实例,即它将从 URL 中提取对象(此示例为硬编码的 Employee)并创建它的实例。

0 投票
2 回答
2434 浏览

asp.net-mvc-2 - MVC2:如何读取操作链接的控制值?

我将一些模型信息传递给 ActionLink,但我还想为操作提供页面上某些输入的值。例如,如果我有这样的事情:

我希望该操作同时了解 Model.Value(通过参数传入)和 MyInput 的值。通常我会使用 FormCollection,但在这种情况下我不能,因为我没有提交。

那么如何将 MyInput 的值传递给 MyAction?我是否必须在我的模型中添加一个名为 MyInput 的属性?假设这可行,有没有更简单的方法,或者至少有一种不涉及修改模型的方法?

0 投票
2 回答
11312 浏览

asp.net - 在 ASP.NET MVC2 创建方法中使用 FormCollection 的正确方法?

我目前正在使用新的 ASP.NET MVC2 框架开发应用程序。最初我开始在 ASP.NET MVC1 中编写这个应用程序,我基本上只是将它更新到 MVC2。

我的问题是,我并没有真正理解 FormCollection 对象与旧的 Typed 对象的概念。

这是我当前的代码:

这是来自 MVC1 应用程序的代码:

在 MVC2 中切换到 FormCollection 有什么好处,更重要的是 - 它是如何正确使用的?

0 投票
1 回答
8235 浏览

c# - 在 asp.net mvc GET 请求上 formcollection 应该为空

我发布了一个简单的动作。

即使查询字符串值很少,formcollection.Count也是0。是靠行为吗?

0 投票
1 回答
1216 浏览

asp.net-mvc - 路由链接不会调用 Actionresult。表格收集罪魁祸首?

我对 MVC 相当陌生。我正在尝试设置一个搜索数据库并返回结果的搜索页面。搜索框在我的视图中的 Html.BeginForm 内,如下所示:

我正在使用 FormCollection 传递给我的控制器,如下所示:

到现在为止还挺好。当我输入一个单词并按下提交按钮时,索引被调用并且数据库相应地返回。ul 会填充结果,当结果超过 pageSize 时(在我的情况下为 10),会显示 Next 链接。

当我单击“下一步”时,会加载默认页面。没有分页或类似的东西。我很确定这与我的 Index ActionResult 有一个 FormCollection 作为参数这一事实有关。我以为我在某个地方读到只能处理字符串/整数?这是地图路线:

我完全错过了什么还是有办法处理这个?我知道我可以只使用 jquery/ajax 来发送包含在搜索列表框中的字符串,但我不想这样做,因为稍后我计划添加复选框作为过滤搜索等的手段。

我尝试了几种不同的方法来设置 formCollection 的值,包括创建一个添加 searchBox 的新 FormCollection,以及只传递字符串等。

0 投票
3 回答
14800 浏览

asp.net-mvc - formcollection 只保存选定的 html.listbox 项目值?MVC

我的场景是这样的:我有两个列表框,一个包含我所有的数据库项目,一个是空的。用户将完整列表框中所需的项目添加到空列表框中。

我正在使用表单来提交用户添加的所有项目。

问题是,仅提交列表框中的选定项目。因此,如果用户取消选择某些项目,它们将不会在表单中提交。我的观点是这样的:

我的控制器看起来像这样:

我是否以错误的方式处理所有事情?有没有更好的提交项目的方法?你会怎么做?