2010-06-01 137 views
0

我是MVC的新手,尝试了一些东西并陷入其中。将用户控件中的数据传递给控制器​​

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

我设置按钮等

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

我已经呼吁一些视图这个用户控件通过

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

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

我知道常规Asp.net的第一部分可以通过委托提高事件来完成,但不知道如何在MVC中实现。

回答

0

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

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

摆脱按钮,改用提交按钮,然后使用BeginForm,以便它将提交给相同的动作和控制器。

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

你有没有通过NerdDinner示例,因为它听起来像你没有。您首先需要做的是了解MVC模型和视图的工作方式。

0

你不能简单地用一个submit按钮,将数据发布到所需的控制器动作:

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

你也可以使用FormMethod.Get如果你想在参数中的URL进行传递。

+0

我已经把相同的代码放在我的用户控件中,但是在提交时它没有调用控制器,可能是因为它是用户控件,但是我想要的。我想把文本框和按钮放在一个用户控件中。 – Nits 2010-06-01 06:51:28

相关问题