【发布时间】:2013-06-03 23:40:44
【问题描述】:
我正在处理一个 MVC 4 项目。我在将表单数据从视图传递到控制器中的操作时遇到问题。我继承的视图已经有一个表单标签,所以我不能在其中嵌套其他表单标签。我对 ajax/javascript 不感兴趣,因为它需要很长时间才能加快速度。
我有一个显示用户详细信息以供编辑的局部视图。我有一个模型,它保存我显示的用户的值。例如:
<input id="txtFirstName" type="text" name="FirstName" value="<%: Model.FirstName %>"/>
由于现有的表单标签,我无法使用 POST 或 GET。因此,如果可能的话,我想用我的文本框值覆盖我的模型实例,无论它们是否已更改,并将模型传递给我的操作:
<%= Model.FirstName = <FirstName value from textbox> %>
....
<%: Html.ActionLink("Save", "UserSave", "User", new {Model})%>
但我不知道如何获取每个文本框等的值。Page.Form.Field?要求。 ?
我知道这是一种丑陋的方式,而不是 MVC 应该工作的方式。但这是时间紧迫的时候之一,我需要一个黑客来完成它。所以,请不要用另一个问题来回答我的问题,比如你为什么不使用 Ajax 或 Razor 等。
谢谢
【问题讨论】:
-
我认为您可能会对浏览器上运行的代码与服务器上运行的代码以及数据如何从一个到另一个传输感到困惑。
-
不,我不是。我一直在使用不同的平台和语言传递表单数据,从在 Linux 的客户端使用 PERL 和 javascript,在服务器端使用 C/C++ 到今天使用 MVC。我对 MVC 比较陌生,尤其是模型的范围。所以请不要光顾我。
-
很抱歉。您表达问题的方式似乎暗示您相信某人在浏览器中的文本控件中键入的数据可以发送到服务器以供 C# 代码访问,而无需使用 HTTP 请求。似乎至少还有一个人同意我的看法。您建议
Page.Form.Field可以填充来自浏览器的值而不使用 GET 或 POST 是什么意思? -
我不知道我在说什么。已经很晚了,我已经抓住了救命稻草 :) 本质上,我需要退后一步,更深入地研究 MVC。
标签: html asp.net-mvc c#-4.0 asp.net-mvc-4