所以我想知道我是否在这里遗漏了一些东西,或者MVC是否可以做到这一点。 说我有这个课程:
public class Stuff
{
public string Thing1 { get; set; }
public string Thing2 { get; set; }
public string Thing3 { get; set; }
}
这在我的控制器中使用如下:
private ActionResult Something(List<Stuff> stuff)...
现在我怎么执行这个链接:
... /#测试仪/东西Thing1 =你好&放大器; Thing2 =世界和放大器; Thing3 = WachuUpTo
url params不会绑定到控制器项目列表。但是,如果我重新配置我的课程看起来像这样:
public class Stuff
{
public List<string> Thing1 { get; set; }
public List<string> Thing2 { get; set; }
public List<string> Thing3 { get; set; }
}
然后使控制器参数成为单个对象:
private ActionResult Something(Stuff stuff)...
有效。 Thing1,Thing2,Thing3每个在列表中都有一个元素,每个元素都有正确的值。现在为什么这种方式有效但另一方面不起作用?我更喜欢第一种方式,因为它更简单,因为我不必担心添加逻辑以确保每个子列表中的元素数量相同。 使用MVC 3顺便说一下。如果可能的话,我也尝试使用url params。
解决方案:
把网址设为:/#Tester / Something?[0] .Thing1 = hello&amp; [0] .Thing2 = world&amp; [0] .Thing3 = WachuUpTo