将数据从Usercontrol传递到控制器

时间:2010-06-01 04:41:23

标签: asp.net asp.net-mvc controller

我是MVC的新手,尝试过某种东西并陷入其间。

我有一个用户控件,我有三个文本框html类型(ID,姓氏,名字)和提交按钮。

我按下按钮

<input type="button" value="Search" 
                onclick="location.href='<%= Url.Action("action", "controller") %>'" /> 

我通过

在某个视图上调用了此usercontrol
<%= Html.Partial("ucName") %>

现在按下那个按钮(在用户控件上)我需要将这些文本框中的数据再次传递给控制器​​一些特定的动作(Http Post动作)。通过使用这些数据,我想做一些数据库交互并将结果存储在数据集中,并将该数据集再次传递到同一视图,以显示在某些网格中。

我知道传统Asp.net的第一部分可以通过委托提升事件来完成,但不知道如何在MVC中做到这一点。

2 个答案:

答案 0 :(得分:0)

在你的行动中你应该有;

public ActionResult(MyModel model)
{
  //now do something with model
}

取消按钮并使用提交按钮,然后使用BeginForm,以便它将提交给相同的操作和控制器。

MyModel应该包含三个字段,你的模型也应该从MyModel继承,以便MVC知道从哪里获取数据。

你有没有看过NerdDinner样本,因为听起来你没有。首先,您需要了解MVC模型和查看工作的方式。

答案 1 :(得分:0)

您不能简单地使用submit按钮将数据发布到所需的控制器操作:

<% using (Html.BeginForm("action", "controller", FormMethod.Post)) { %>
    <!-- ...  your textboxes here ... -->
    <input type="submit" value="Search" />
<% } %>

如果您希望在网址中传递参数,也可以使用FormMethod.Get