如何将复杂数据(对象)从视图发送到控制器?
问题描述:
我想从我的视图传递这个人物对象到控制器没有窗体,我该怎么做?如何将复杂数据(对象)从视图发送到控制器?
这里是我的尝试:
VIEW
<%=Html.ActionLink(
"Jump",
"Jump",
new { name="MyName",
person=ViewData["Person"]}, // lets assume ViewData["Person"] is not null
null) %>
控制器
public ActionResult Jump(string name, Person person)
{
return View();
}
在调试中跳转方法的应用程序,名称参数显示 “MYNAME”,但Person中的参数为null。它为什么这样表现?
是因为它仅适用于基本类型,如int,字符串等,并且不适用于复杂类型,如Person对象?
这是怎么回事?
答
对于解析复杂类型,您的假设是正确的。
由于这将变成<a>
,因此没有简便的方法将Person对象序列化以适应href
属性。
尝试将某种独特的原始参考传递给Person,如int
或GUID
。
+0
thx为您的输入,真的很感激! – Ari 2010-10-04 02:08:54
还记得,该动作链接只是建立一个标签。您不需要单击该链接并检查控制器操作方法参数中的值以查看它是否正常工作;您可以将鼠标悬停在浏览器中的链接上,查看的href。如果它不在href中,则不会将其发送到服务器。 – bzarah 2010-10-01 13:53:12
好的thx兄弟!好点有 – Ari 2010-10-04 02:08:41