2010-03-23 88 views
3

我从PHP语言(笨)来了,但现在我学习ASP.Net MVC :)asp.net的MVC后变量控制器

在PHP笨,我们可以用

$this->input->post("theinput"); 
容易患后变量

我知道,在ASP.Net MVC,我们可以创建将接受来自POST请求这样的

public ActionResult Edit(string theinput) 

或可变的操作方法

public ActionResult Edit(FormCollection formCol) 

有没有办法像ASP的codeigniter一样在ASP.Net中捕获post变量,这样我们就不必编写FormCollection对象,也不必在action方法中写参数(因为它可能会非常拥挤我们通过了很多变量)

ASP.Net是否有一个简单的getter方法来捕获这些post变量?

编辑: 我会非常感激,如果ü可以给我一个链接,这些教程:d

回答

3

是。

Request.Form["theinput"] 

然而,要做到这一点的最好办法是使包含每个需要访问不同属性的模型类,然后让你的行动采取的类的实例作为参数。

+0

我是.Net的初学者,我不太了解模型类是什么。你可以给我一个链接到这些教程:D – 2010-03-24 00:24:14

+0

http://www.asp.net/learn/mvc/ – SLaks 2010-03-24 01:09:58

3

您通常不希望在代码中使用FormCollection或Request.Form。这些对象很难模拟,这使得自动化测试非常困难。

最佳做法是创建一个视图模型类,将所需的所有输入作为属性,并将此类作为控制器操作的输入。

+0

其实,由于'System.Web.Abstractions',他们不是很难嘲笑。不过,参加模特班肯定会更好。 – SLaks 2010-03-23 12:01:34

+0

对不起,我不明白什么是viewmodel类。你能给我一个链接到这些教程:D – 2010-03-24 00:23:08

+1

视图模型是一个专门适合视图的模型。看看像这样的资源:http://stephenwalther.com/blog/archive/2009/04/13/asp.net-mvc-tip-50-ndash-create-view-models.aspx和http://geekswithblogs.net /michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx – gautema 2010-03-24 10:14:28