【问题标题】:Populating a page with data from a database in mvc 5在 mvc 5 中使用来自数据库的数据填充页面
【发布时间】:2016-04-14 12:35:42
【问题描述】:

我想用数据库中的某些字段填充视图的某些部分。我不确定如何使这项工作。这是我现在的情况……

这是我的控制器操作:

public ActionResult Course_page(string id)
    {
        string abbrev = id;
        var cpage = from c in db.Course_page
                    select c;

        if (!String.IsNullOrEmpty(abbrev))
        {
            cpage = cpage.Where(x => x.abbrev.Contains(abbrev));

        }

        return View(cpage);
    }

我的模特:

[Table("course_page")]
public class Course_page
{
    [Key]
    public int CourseID { get; set; }
    public string Meta { get; set; }
    public string Title { get; set; }
    public string Country { get; set; }
    public string main_image { get; set; }
    public string list_1 { get; set; }
    public string list_2 { get; set; }
    public string list_3 { get; set; }
    public string list_4 { get; set; }
    public string list_5 { get; set; }
    public string list_6 { get; set; }
    public string list_7 { get; set; }
    public string list_8 { get; set; }
    public string list_9 { get; set; }
    public string list_10 { get; set; }
    public string testim_1 { get; set; }
    public string testim_2 { get; set; }
    public string testim_3 { get; set; }
    public string course_site { get; set; }
    public string popup_script { get; set; }
    public string abbrev { get; set; }
}

视图(缩短):

@model IEnumerable<oltinternational_mvc.Models.Course_page>
<div id="main_container">
<article class="content">
    <h1>{@Html.DisplayNameFor(modelItem => cpage.Title)}</h1>
</article>
</div>

我知道我必须在视图的某处引用 cpage 变量,但我不确定以何种方式。这个想法是,课程页面将根据 URL 提供的 ID 加载正确的详细信息。

请有人告诉我如何在视图文件中包含 cpage 变量,或者我是否以正确的方式执行此操作?

【问题讨论】:

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


    【解决方案1】:

    您的做法是正确的,只需更改此助手即可:

    {@Html.DisplayNameFor(modelItem => cpage.Title)} to
    
    @Html.DisplayNameFor(modelItem => modelItem .Title)
    

    并在 foreach 循环中打印数据,因为您可以有多个结果。

    【讨论】:

    • 他的模型是Course_page的集合。除非应用于单个对象,否则虽然语法准确,但不会起作用。
    • @Nkosi 最好在评论之前先实际检查一下。因为我已经有一个工作示例,其中我的模型在 IEnumerable 中,并且我正在使用带有模型属性的助手,虽然它不会给你智能,但它会起作用
    • 感谢您的回复。我尝试了您建议的修改,并为页面上的 html 添加了一个 foreach (var cpage in model) 循环。这是你建议的吗?不幸的是,这似乎不起作用。我已经让它以另一种方式工作,虽然这可能不是这样做的方式,但 foreach 循环包含在

      中,就像这样 - foreach (var cpage in Model) {@Html.DisplayFor(modelItem => cpage.标题)}大概你的方式更好,请你解释一下我应该如何放置和构造foreach循环?谢谢

    • 所以假设你有一个表,它是这样的:@ foreach(var cpage in Model){}
      @Html.DisplayNameFor(modelItem => modelItem .Title)
      @Html.DisplayFor(c=>cpage.Title) 或简单的@cpage.Title
    猜你喜欢
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2021-08-03
    • 1970-01-01
    • 2013-01-28
    相关资源
    最近更新 更多