【问题标题】:Return a list of objects from Controller and Parse the objects in razor c# mvc从Controller返回对象列表并解析razor c# mvc中的对象
【发布时间】:2018-06-07 03:30:00
【问题描述】:

我从控制器对对象进行了非常简单的调用。它返回一个对象列表,这些对象具有我需要在剃刀表单上提取的值。

这是控制器代码:

public List<DocumentSearchResult> Results(string searchString, string location)
    {
        return SharePointRESTDocSearch.SearchResult(location, searchString);
    }

这会返回一个 SearchResult 对象列表,这些对象在对象上具有这些属性:

文档标题、文档路径

在我看来,我将控制器称为如下:

 @using (Html.BeginForm("Results", "SharePointSearch"))
{
    <label>Search Term</label>
    <input type="text" id="searchString" name="searchString" />

    <label>SharePoint Location</label>
    <input type="text" id="location" name="location" />
    <input class="button" id="Submit" type="submit" value="Search" />

}

我可以截取控制器中的代码并返回结果。我只需要知道如何从控制器返回结果并在剃须刀页面中循环显示信息即可。我试过这个:

 @foreach(var item in Model)
{
    <p>Document Title: @item.DocumentTitle</p>
}

但我在模型上收到一个空错误。 SearchResult返回的数据我无法控制,只需要解析返回的项并显示结果即可。

谢谢。

【问题讨论】:

  • 我不清楚控制器方法与视图的关系。该方法根本不返回视图,因此它不是控制器操作。什么是控制器动作?它是如何调用你展示的方法的?它如何将结果传递给视图?
  • 此结果没有模型,此调用返回 SearchResult 中的 System.Collections.Generic.List 项目
  • “没有模型” - 好吧,如果您没有将模型发送到视图,那么这可以解释为什么 Model 在视图中是 null .你在哪里尝试将任何东西传递给视图?
  • 对不起,让我澄清一下我的“没有模型”声明,这是错误的。当我尝试返回模型时,我收到错误:无法将类型 System.Web.Mvc.ViewResult 隐式转换为 System.Collection.Generic.List' 错误。使用这一行: List x = SharePointRESTDocSearch.SearchResult(location, searchString);返回视图(x);
  • 哪行代码给你这个错误?您为什么要尝试从一种类型转换为另一种类型?请澄清问题,包括您遇到的错误和产生错误的代码。

标签: asp.net-mvc razor


【解决方案1】:

您的代码对我来说没有多大意义...您应该返回一个视图并发送您想要作为模型发送的列表。

像这样……

public ActionResult Results(string searchString, string location)
{
    List<DocumentSearchResult> model = SharePointRESTDocSearch.SearchResult(location, searchString);
    return View(model);
}

除非我不明白问题是什么

【讨论】:

  • 假设 OP 的视图名为 Results。否则 OP 将不得不做 return View("ViewName", model);
  • 这行得通。我需要添加 ActionResult 并返回视图。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-29
  • 1970-01-01
相关资源
最近更新 更多