asp.net MVC3在详细信息页面上显示查询结果

时间:2012-05-01 00:24:02

标签: asp.net asp.net-mvc-3

我是MVC3的新手

DB有一个名为users(id,name,username,lat,lon)的表。我无法访问数据库。

我使用上表创建了实体模型。然后,我创建了一个SearchController和Search View。在索引页面上,我显示所有用户的列表。此外,我在页面上创建了一个使用用户名搜索表格的表单。点击详细信息链接后,我会显示详细信息页面,其中显示用户的详细信息。

现在,我需要显示距所选用户一英里范围内的其他用户。我已经有了sql查询来获取所选用户一英里范围内的其他用户列表(这是一个SQL查询)。我需要在详细信息页面上显示此列表。

我创建了一个自定义类模型。

public class SearchDetailsViewModel
{
    public decimal id { get; set; }
    public string name { get; set; }
    public string username { get; set; }
    public Nullable<decimal> lat { get; set; }
    public Nullable<decimal> lon { get; set; }
    public string profile_img_url { get; set; }
    public IQueryable<user> usersWithinAMile { get; set; }
}

我不确定这是否是正确的做法。另外,我不知道如何初学这门课。

非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

是的,你走在正确的轨道上,你将SQL中的数据输入到类中,然后到ActionResult中的视图,如下所示:

using System.Collections.Generic;

public ActionResult Index() {
    var data = new List<SearchDetailsViewModel>();
    // foreach row in your SQL
    var s = new SearchDetailsViewModel();
    s.lat = -42.00000M;
    // more data added to the s object here
    data.Add(s);
    // end loop

    return View("ThePage", data);
}

然后在你的观点上你会做这样的事情:

@foreach (var s in Model) {
    // output your values on the page
}