HomeController.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcHelperActionTest.Models;
namespace MvcHelperActionTest.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[ChildActionOnly]
public ActionResult MyMenu()
{
Menu m = new Menu();
List<MenuItem> items = new List<MenuItem>();
items.Add(new MenuItem() { Text = "Baidu", Url = "http://www.baidu.com" });
items.Add(new MenuItem() { Text = "Sina", Url = "http://www.Sina.com" });
items.Add(new MenuItem() { Text = "IBM", Url = "http://www.ibm.com" });
items.Add(new MenuItem() { Text = "Sohu", Url = "http://www.sohu.com" });
m.Items = items;
return PartialView(m);
}
}
}
Models下面创建一个类文件:Menu.cs文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MvcHelperActionTest.Models
{
public class Menu
{
public List<MenuItem> Items { get; set; }
}
public class MenuItem
{
public string Text { get; set; }
public string Url { get; set; }
}
}
Web.config文件增加内容:
...
<namespaces>
...
<add namespace="MvcHelperActionTest.Models" />
</namespaces>
...
Index.cshtml:
@{
ViewBag.Title = "Index";
}
<h2>@Html.Action("MyMenu") </h2>
<h2>@{Html.RenderAction("MyMenu");}</h2>
局部视图文件,MyMenu.cshtml:
@model Menu
<ul>
@foreach(var item in Model.Items)
{
<li><a href="@item.Url">@item.Text</a></li>
}
</ul>