我有一个HomeController
具有以下操作方法的控制器:
public ActionResult DisplayData(MyViewModel myViewModel)
{
// Do something with myViewModel
}
ViewModel
: _
public class MyViewModel
{
public List<string> Names { get; set; }
public List<CustomViewModel> CustomVM { get; set; }
public bool IsSpecial { get; set; }
}
以及以下View
@model AppName.ViewModels.MyViewModel
@{ Html.RenderPartial("MyPartialView", Model); }
<img src="@Url.Action("DisplayData", "Home", new RouteValueDictionary(Model))" alt="Image" />
我使用Url.Action
这里描述的方式,但我在DisplayData
action 方法中得到的是 null。在我得到的源代码中:
<img src="/Home/DisplayData?IsSpecial=true&Name=System.Collections.Generic.List%601%5BSystem.String%5D&CustomVM=System.Collections.Generic.List%601%5BVestibule.AppName.ViewModels.CustomViewModel%5D"" alt="Image" />
所以它实际上是在传递类型而不是值。唯一正确传递的变量值是 boolIsSpecial
ViewModel 反而被正确地传递给局部视图。我究竟做错了什么?