通过操作链接或URL操作发送数组,并在MVC4中的路由表中接受



是否可以通过操作链接或URL操作发送数组并在路由表中接受?如果可能的话,请引导我控制器代码是

 public ActionResult subCategories(string mainCategory, string subCategory)
    {
    var fullPath = string.Concat(mainCategory, "/", subCategory);
    var id = _db.Categories.FirstOrDefault(p => p.FullPath == fullPath);
    ViewBag.urlPath = id.FullPath;
    var categories = _db.Products.Where(p => p.CategoryID == id.ID);
    return View("CategoryDetail", categories);
    }

查看代码是

<a style="color: #333333" href="/productdetail/@ViewBag.urlPath/@Nname">@item.Name</a>

您可以使用 Json做到这一点,假设我有数组

ViewBag.array = new[] {"test1", "test2", "test3"};

所以我的观点像

@Html.ActionLink("link","test",new {array= Json.Encode(ViewBag.array) })

Json.Encode将将此数组转换为json string

我的测试行动将像这样

 public ActionResult test (string array)
        {
            string[] result = System.Web.Helpers.Json.Decode<string[]>(array);
            return View();
        }

Json.Decode<string[]>将将此json string转换回string[]数组

最新更新