如何将List作为参数传递给控制器​​中的方法

时间:2017-02-18 05:34:01

标签: c# asp.net asp.net-mvc

这是我从中返回列表的函数。该列表在从此方法发送时具有值。

ch

这是从上述方法调用的动作结果。

while (ch!= EOF){...}

这是我的模特:

  public ActionResult searchItemReview(string searchItem, int userId)
    {

        if (userId > 0) {
            saveReviewHistory(searchItem, userId);
        }

        string cxCnet = "004414622588908206393:to_4_i9qoqs";
        string cxTrustedReviews = "004414622588908206393:mfbtsoruifs";

        allReviewList revList = new allReviewList();

        RootObject urlLinks = googleSearch.getSearchResults(searchItem, cxCnet);
        reviewCnet searchItemRevCnet = scrapData.scrapSitesCnet(urlLinks);
        RootObject urlLink = googleSearch.getSearchResults(searchItem, cxTrustedReviews);
        reviewCnet searchItemRev = scrapData.scrapSiteMobileTrustedreviews(urlLink);

        searchItemRevCnet.trustedReview = searchItemRev.trustedReview;

        revList.reviewList.Add(searchItemRevCnet);

        return RedirectToAction("searchReview", "home", revList);
    }

我无法弄清楚这是怎么回事。如果我在模型中没有构造函数,我会收到错误,说对象引用不是对象的实例....

感谢任何形式的帮助。

2 个答案:

答案 0 :(得分:0)

您无法在URL重定向中传递此类对象。可能值得尝试的一件事是将列表存储在TempData中,如下所示:

TempData["revList"] = revList;
return RedirectToAction("searchReview", "home");

然后在家庭控制器的searchReview Action中:

var revList= TempData["revList"] as allReviewList;

答案 1 :(得分:0)

或者,您可以使用JSon或XML将数据解析为字符串,并在需要使用它的位置反序列化它。如果您想使用Javascript在客户端使用此数据,这将是一种更好的方法。

public ActionResult searchItemReview(string searchItem, int userId)
{
    .
    .
    .
    var str = Json.Encode(revList);
    return RedirectToAction("searchReview", "home", str);
}

如果你需要客户端处理数据,那么它会更好,否则尼克的方法会更好。