ASP.NET MVC 2 - 查看数据后POST空
我真的不知道在哪里寻找错误...情况:我有一个ASPX视图,其中包含一个窗体和一些输入,当我点击提交按钮一切都POST'ed到我的ASP.NET MVC行动之一。ASP.NET MVC 2 - 查看数据后POST空
当我在那里设置断点时,它被正确命中。当我使用FireBug来查看发送到该操作的内容时,我正确地看到data1 = abc & data2 = something & data3 = 1234。
然而,没有什么是在我的行动方法到达。 ViewData是空的,没有ViewData [“data1”]或任何可以显示数据到达的东西。
这怎么可能?我在哪里可以开始寻找错误?
从控制器到视图时,ViewData是相关的。它不会回发。
你需要你的动作方法看起来像
public ActionResult DoSomething(string data1, string data2, int data3) { ...
然后(模型参数?)结合应该照顾你的东西
...的确如此:-) – 2010-05-28 19:15:54
尝试修改你的行动接受的FormCollection:
public ActionResult DoSomething(FormCollection fc)
{
System.Diagnostics.Debug.Writeline(fc["data1"]);
}
如果你想看到什么是张贴到您的视图,接受的FormCollection作为参数,或直接绑定你的表单元素的模型。像这样:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult PostToThisView(FormCollection formItems)
{
var data1 = formItems["data1"];
return View();
}
试试这个:
Request["data1"]
或
Request.Form["data1"]
或
[HttpPost]
public ActionResult YourPostAction(object data1)
或
[HttpPost]
public ActionResult YourPostAction(ACLassThatHasData1Prop viewmodel)
//your view doesn't has to be strongly typed to the type of the parameter in this case
关于最后一个示例,用于该参数的模型不必与强制类型为请求来源的视图的模型相同。模型联编程序将简单地获取存储在表单集合中的值(或者如果请求是GET,则返回查询字符串),并尝试使用它们填充指定为参数的任何类型的对象。 – 2010-05-28 20:36:18
@Dr。 Wily的学徒,thnx告诉我这一点 – Omu 2010-05-29 08:19:07
WRT数据1 = ABC&数据2 = ...什么呢ŧ他的方法签名为你的动作方法看起来像? – 2010-05-28 19:09:04
没有参数。 ViewData [“data1”]应该能够访问该值。但它是空的,即使FireBug显示该值已提交。 – Alex 2010-05-28 19:10:35
你期待在ViewData中找到什么回发?它用于控制器向视图发送数据,反之亦然。查看'Request [“data1”]',或者在控制器操作的参数中更好。 – 2010-05-28 19:10:39