繁体   English   中英

MVC5自动拆分IEnumerable <primitive> 参数

[英]MVC5 automatically split IEnumerable<primitive> Parameters

假设我有一个带有以下签名的动作:

public ActionResult SomeAction(IEnumerable<string> myList){ .. }

和另一个动作:

public ActionResult AnotherAction() {
    var myListEntries = LoadFromSomewhere().ToList<string>();

    return RedirectToAction("SomeAction", new { myList = String.Join(";", MyListEntries) });
}

有什么方法可以告诉第一个操作,它必须对传入的值应用分隔符? 还是我必须使用TempData []或(在HTML中)多个输入字段?

所以打电话

return RedirectToAction("SomeAction", new { myList = myListEntries });

不起作用,因为结果是您的操作将收到一个包含一个条目的列表,其中包含您将从myList.ToString()获得的内容, myList.ToString()内容仅返回类型名称,这是非常无用的。

因此,正如您已经猜到的那样,您必须插入某种字符串表示形式,MVC可以将其自动转换回列表对象。 要接收此消息,您不应使用String.Join() ,但可以尝试JSON:

return RedirectToAction("SomeAction", new { myList = JsonConvert.SerializeObject(myList) });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM