【发布时间】:2010-01-14 16:34:15
【问题描述】:
可能就是这么简单。但是,我很难弄清楚。
我有一个具有不同操作的控制器,它调用数据库代码并返回结果。我想将文本框的值传递给控制器中的不同操作。
怎么做?我知道,我可以使用表单传递值。但是,我不知道如何在单个视图中调用控制器中的不同操作。
【问题讨论】:
可能就是这么简单。但是,我很难弄清楚。
我有一个具有不同操作的控制器,它调用数据库代码并返回结果。我想将文本框的值传递给控制器中的不同操作。
怎么做?我知道,我可以使用表单传递值。但是,我不知道如何在单个视图中调用控制器中的不同操作。
【问题讨论】:
刚刚遇到同样的问题并对其进行了排序。 Html.TextBox 中字符串参数的名称必须与控制器方法中的参数匹配,否则控制器中的参数最终为空。示例:
在视图中-
<%= Html.TextBox("value") %> // argument is named "value"
控制器方法-
[HttpPost]
public ActionResult ControllerName(string value) // parameter named the same as argument
{ //code here }
【讨论】:
我不确定您使用的是什么语言或框架,但在 ASP.NET MVC 中,输入控件 ID 映射到操作参数,所以如果您有一个文本框:
<input type="text" name="firstName" id="firstName/>
然后,当该表单发布到您的操作时,框架通过将 POST 数据与操作参数匹配来传递文本框的值:
public ActionResult UpdateUser(string firstName)
{
User user = UserManager.UpdateUser(this.CurrentUserId, firstName);
return View(user);
}
【讨论】:
我正在浏览并发现了这个问题。如果这些选项不起作用,也许您可以尝试
Requst["value"]
在你的控制器中
【讨论】: