MVC3 如何将多个查询结果赋值到cshtml页面中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC3 如何将多个查询结果赋值到cshtml页面中?相关的知识,希望对你有一定的参考价值。

Controller代码如下:
public ActionResult Index()

var data1 = (from t in db.Article
where t.Type == "考试动态"
select t).Take(5).ToList();

var data2 = (from t in db.Article
where t.Type == "培训教材"
select t).Take(5).ToList();

return View();


我想从数据库中的“考试动态”和"培训教材“各取出5条记录,并将取出来的记录分别显示在前台Index.cshtml页面的两个<div class="listBox"></div>框中,请问Controller代码中如何将查询结果赋值到Index.cshtml页面中,以及Index.cshtml中的循环输出代码如何写?

单个查询的赋值可以这样写,如下:
public ActionResult Index()

viewData.Model = (from t in db.Article
where t.Type == "培训教材"
select t).Take(5).ToList();

return View();

Index.cshtml代码:
@foreach (var item in Model)

@Html.ActionLink(@item.Title, "Details", "Article", new id = @item.Id , null)

参考技术A 自定义一个实体类,带两个属性,页面上转换Model到这个实体类。 参考技术B 自定义一个实体类,带两个属性,页面上转换Model到这个实体类不就好了本回答被提问者和网友采纳

如何在 mvc4 中使用 href 链接 cshtml 页面

【中文标题】如何在 mvc4 中使用 href 链接 cshtml 页面【英文标题】:How to link a cshtml page using href in mvc4 【发布时间】:2016-01-08 04:37:18 【问题描述】:

我想使用带有 href 的锚标记链接 Menu.cshtml 页面,这样每当我单击导航栏中的菜单链接时,它都会将我引导至 Menu.cshtml。我已经尝试使用此代码几次,但我无法做到。这是我正在使用的代码:

<a class="page-scroll" href="~/Views/Home/Menu.cshtml">Menus</a>

【问题讨论】:

使用@Html.ActionLink("Menus", "Menu", "yourController", null, new @class = "page-scroll" ) 并添加一个名为Menu 的控制器方法来返回视图。 我必须添加一个控制器,即使我将它用作导航栏中的链接??我是mvc的初学者,你能解释一下吗? 当您在文件夹Home 中放置Menu.cshtml 时,惯例是您定义了带有Menu 操作的Home 控制器。 是的。该方法将只是HomeController 中的public ActionResult Menu() return View(); 。在 MVC 中,您无需导航到文件,而是导航到返回视图的方法。 【参考方案1】:

您可以尝试使用ActionLink html 帮助程序,让框架生成正确的链接。

@Html.ActionLink("Menus","Menu","Home", null, new  @class = "page-scroll" )

【讨论】:

【参考方案2】:

在 ASP.NET MVC 中,您不能直接链接到视图。这将破坏 MVC 的全部目的。在 ASP.NET MVC 中,控制器负责选择返回给用户的视图。您创建一个指向控制器操作的操作链接,并让该操作决定应该将哪个视图返回给用户。你的情况是:

@Html.ActionLink("Menus", "Action", "Controller", null, new  @class = "page-scroll" );

假设您创建了一个名为 HomeController 的控制器和一个名为 Menu 的操作。让我们也添加一个简单的动作主体:

public ActionResult Menu()

    return View();

然后,按照惯例,ASP.NET MVC 会在 Views/Home/ 中查找名为 Menu.cshtml 的视图。链接到此操作的操作链接将是:

@Html.ActionLink("Menus", "Menu", "Home", null, new  @class = "page-scroll" );

但是,您的问题是如何使用 href 链接到视图。 @Html.ActionLink 将为您执行此操作,但如果您真的想使用 href,您可以直接链接到操作而不是视图(例如,如果您使用的是默认 MVC 路由):

<a class="page-scroll" href="/Home/Menu">Menus</a>

【讨论】:

【参考方案3】:

试试这个,这个方法用于重定向。

@Html.ActionLink("Menus", "Menu", "Home", new @class="page-scroll");

【讨论】:

【参考方案4】:

Asp.net Mvc 5 中的图像作为锚标记

当您想要将徽标作为操作链接时

href="~/"

在布局页面中重定向到主页

【讨论】:

以上是关于MVC3 如何将多个查询结果赋值到cshtml页面中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Index.cshtml MVC3 上显示两个 Partials 视图数据?

通过redirectPost()函数将多个数据项发布到.cshtml页面

如何将配置设置添加到 _Layout.cshtml 共享 Razor 页面

asp.net mvc3 linq 多表查询怎么把返回的集合在页面循环输出

asp.netMVC3.0框架,怎样在视图层的页面使用jquery EasyUI

在MVC3中如何将所有脚本移动到页面底部的</body>之前?