添加一个Array对象作为现有Controller类方法的属性

时间:2010-12-03 11:57:06

标签: asp.net-mvc

目前我要么使用控制器类,要么使用formViewModel。我想添加数组属性对象的控制器源方法如下:

有谁知道我将如何向这个ActionResult添加一个数组,以便从我的View我可以遍历我的数组。我添加的数组将包含从客户端代码在地图对象上绘制的坐标。

要做到这一点,我必须使用formViewModel并设置我的视图来引用它?如果我可以简单地使用现有代码传递数组那么棒。

public ActionResult IndexSearch(int?page,string siteDescription)         {

        const int pageSize = 10;

        //Get all Sites
        var allSites = _siteRepository.FindAllSites();

        //Get all Sites that contain the value in sitedescription
        var searchResults = (from s in allSites
                             where s.SiteDescription.StartsWith(siteDescription)
                             select s);

        //Return partial view that the ajax reults get loaded into.
        var paginatedSites = new PaginatedList<Site>(searchResults, page ?? 1, pageSize);

        return PartialView("SiteIndexSearchresults", paginatedSites);
    }

1 个答案:

答案 0 :(得分:0)

我不明白你在说什么formViewModel。在您提供的示例代码中,控制器操作是将IEnumerable<Site>集合传递给您的视图,以便您可以遍历它:

<% foreach (Site item in Model) { %>
    <div><%: item.SiteDescription %></div>
<% } %>

甚至更好地使用此网站的显示模板(~/Views/Home/DisplayTemplates/Site.ascx):

<%@ Control 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewUserControl<SomeNs.Site>" 
%>
<div><%: Model.SiteDescription %></div>

在您的主视图中简单地说:

<%: Html.DisplayForModel() %>