asp.net mvc表单值显示
我是新来的asp.net mvc。基本上我是从PHP程序员。在我的php文件中,我可以使用echo $_POST;
或print_r($_POST);
或var_dump($_POST)
显示来自html页面或窗体的所有值。但在asp.net中,我怎样才能实现这一点,以检查UI页面到控制器的所有值是什么。asp.net mvc表单值显示
你可以看看的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并在主体中发送它们。
我只是想在我的回答中加上这一点,正确的方法是在模型中使用。 :)我现在我看到你进一步编辑了问题... +1 – 2013-03-07 08:37:08
真的非常感谢您的回复,我可以理解为什么我们希望使用viewmodel作为我的UI页面。非常感谢 – 2013-03-07 08:48:06
您可以通过Request.Form
查看原始数据。
但这不是他的ASP.NET MVC精神。它更喜欢你期望一个模型进入你的控制器。您已经通过名为model binder的特殊模块完成了所有类型的安全映射。
所以,除非你在一些特殊的情况下工作,你只需要添加一个模型来控制行动:
public ActionResult SomeAction(SomeModel model)
{
//Handle SomeModel data further ...
}
您可以创建一个行动,这将接受来自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
}
第一,开始阅读教程s http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3 – 2013-03-07 08:32:13