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)
如何在 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 多表查询怎么把返回的集合在页面循环输出