我在局部视图中有以下内容
<%= Ajax.ActionLink("Plunder Again", "Resources", new { controller = "Resource", parent = Model.ToJson() }, new AjaxOptions { UpdateTargetId = Model.ResourceType })%>
转到控制器方法:
public ViewResult Resources(/*ModelResource parent*/)
{
Debug.Assert(Request.Params["parent"]!=null);
var jss=new System.Web.Script.Serialization.JavaScriptSerializer();
var parent=jss.Deserialize<ModelResource>(Request.Params["parent"]);
return View(parent.PlunderAmount);
}
但它抛出一个异常,因为json没有正确通过url传递,它找不到'Type'参数。
我尝试将ModelResource作为Action的参数,但它以null
的形式出现如果这有任何意义,此行动也将返回部分视图。
答案 0 :(得分:0)
ActionLink用于创建URL的锚点 - URL必须有效!通常,您不会将整个对象传递给Action,因为路径值必须绑定回模型并传递给操作。您可以传递对象的ID,因此Action可以使用该键获取对象。
答案 1 :(得分:0)
如果要将Model发送到控制器而不是Ajax.ActionLink,请使用Ajax.BeginForm