【问题标题】:Passing Data from Usercontrol to controller将数据从用户控件传递到控制器
【发布时间】:2010-06-01 04:41:23
【问题描述】:

我是 MVC 的新手,正在尝试一些东西,但在两者之间陷入了困境。

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

我设置按钮喜欢

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

我已经通过一些视图调用了这个用户控件

<%= Html.Partial("ucName") %>

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

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

【问题讨论】:

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


    【解决方案1】:

    在你的行动结果中你应该有;

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

    摆脱按钮并使用提交按钮,然后使用 BeginForm 以便提交到相同的操作和控制器。

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

    您是否浏览过NerdDinner 示例,因为听起来您还没有浏览过。您需要首先了解 MVC 模型和视图的工作原理。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我在我的用户控件中放入了相同的代码,但在提交时它没有调用控制器,可能是因为它是一个用户控件,但我想要。我想将文本框和按钮放在一个用户控件中。
      猜你喜欢
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 2014-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多