2013-03-07 87 views
1

我是新来的asp.net mvc。基本上我是从PHP程序员。在我的php文件中,我可以使用echo $_POST;print_r($_POST);var_dump($_POST)显示来自html页面或窗体的所有值。但在asp.net中,我怎样才能实现这一点,以检查UI页面到控制器的所有值是什么。asp.net mvc表单值显示

+2

第一,开始阅读教程s http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3 – 2013-03-07 08:32:13

回答

3

你可以看看的Request.Form属性:

public ActionResult SomeAction() 
{ 
    var values = Request.Form; 
    ... 
} 

你可以把一个断点,并分析值。或者只需在浏览器中使用JavaScript开发工具栏(例如FireBug或Chrome Developer Toolbar)即可查看发送到服务器的确切内容。

但通常你不应该直接访问原始值。在ASP.NET MVC中,有一个模型绑定器可以根据发送给服务器的值实例化一些模型。

例如,你可以有以下型号:

public class MyViewModel 
{ 
    public int Age { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

,然后让你的控制器动作以此模型参数:

public ActionResult SomeAction(MyViewModel model) 
{ 
    ... you could use the model properties here 
} 

,现在你可以调用这个控制器动作要么wityh一GET请求传递查询字符串(/someaction?age=10&firstname=foo&lastname=bar)中的参数或使用POST并在主体中发送它们。

+0

我只是想在我的回答中加上这一点,正确的方法是在模型中使用。 :)我现在我看到你进一步编辑了问题... +1 – 2013-03-07 08:37:08

+0

真的非常感谢您的回复,我可以理解为什么我们希望使用viewmodel作为我的UI页面。非常感谢 – 2013-03-07 08:48:06

0

您可以通过Request.Form查看原始数据。

但这不是他的ASP.NET MVC精神。它更喜欢你期望一个模型进入你的控制器。您已经通过名为model binder的特殊模块完成了所有类型的安全映射。

所以,除非你在一些特殊的情况下工作,你只需要添加一个模型来控制行动:

public ActionResult SomeAction(SomeModel model) 
{ 
    //Handle SomeModel data further ... 
} 
0

您可以创建一个行动,这将接受来自UI页面的参数如下所示:

[HttpPost] 
public ActionResult SomeAction(string param1, int param2) 
{ 
    //Now you can access the values here 
} 

或做出一个行动,这将接受模型

public ActionResult SomeAction(SomeModel model) 
{ 
    //Access the model here 
}