我来自PHP语言(codeigniter),但现在我学习ASP.Net MVC:)
在PHP codeigniter中,我们可以使用
轻松捕获post变量$this->input->post("theinput");
我知道在ASP.Net MVC中我们可以创建一个动作方法,接受来自post请求的变量,如下所示
public ActionResult Edit(string theinput)
或者
public ActionResult Edit(FormCollection formCol)
有没有办法像PHP的codeigniter一样在ASP.Net中捕获post变量,这样我们就不必编写FormCollection对象,也不必在action方法中写入参数(因为如果我们通过它会变得非常拥挤许多变量进入它)
ASP.Net是否有一个简单的getter方法来捕获这些后置变量?
编辑: 如果你能给我一些这些教程的链接,我将非常感激:D
答案 0 :(得分:3)
是
Request.Form["theinput"]
但是,最好的方法是创建一个模型类,其中包含您需要访问的每个变量的属性,然后让您的操作将该类的实例作为参数。
答案 1 :(得分:3)
您通常不希望在代码中使用FormCollection或Request.Form。这些对象很难模拟,这使得自动化测试变得非常困难。
最佳做法是创建一个viewmodel类,其中包含您需要的所有输入作为属性,并将此类作为控制器操作的输入。