我真的不知道在哪里寻找错误......情况:我有一个ASPX视图,其中包含一个表单和一些输入,当我单击提交按钮时,所有内容都被POST到其中一个我的ASP.NET MVC操作。
当我在那里设置断点时,它被正确击中。当我使用FireBug查看发送到操作的内容时,我正确地看到data1 = abc& data2 = something& data3 = 1234。
然而,我的行动方法没有任何结果。 ViewData为空,没有ViewData [“data1”]或其他任何可以显示数据到达的内容。
这怎么可能?我在哪里可以开始寻找错误?
答案 0 :(得分:8)
从控制器进入视图时,ViewData是相关的。它不会回发。
你需要你的行动方法看起来像
public ActionResult DoSomething(string data1, string data2, int data3) { ...
然后(模型?参数?)绑定应该为你处理事情
答案 1 :(得分:1)
尝试修改您的操作以接受FormCollection:
public ActionResult DoSomething(FormCollection fc)
{
System.Diagnostics.Debug.Writeline(fc["data1"]);
}
答案 2 :(得分:0)
如果要查看发布到View的内容,请接受FormCollection作为参数,或将表单元素直接绑定到模型。像这样:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult PostToThisView(FormCollection formItems)
{
var data1 = formItems["data1"];
return View();
}
答案 3 :(得分:0)
试试这个:
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