主页 > 知识库 > 网络编程 > ASP/.NET >

HTML.Action()和HTML.RenderAction()(2)

来源:中国IT实验室 作者:佚名 发表于:2012-08-14 13:17  点击:
建立一个PartialView - MyMenu.cshtml [csharp] @model MvcLearn.Models.Menu ul @foreach(var item in Model.Items) { lia href=@item.Url@item.Text/a/li } /ul 在页面中调用该Action生成视图: [csharp] @Html

建立一个PartialView - MyMenu.cshtml
   
    [csharp]
   
    @model MvcLearn.Models.Menu
   
    <ul>
   
    @foreach(var item in Model.Items)
   
    {
   
    <li><a href=“@item.Url”>@item.Text</a></li>
   
    }
   
    </ul>
   
    在页面中调用该Action生成视图:
   
    [csharp]
   
    @Html.Action(“MyMenu”)
   
    Action和PartialView的名字要一样,这里都是MyMenu
   
    以下是向Action传递参数的版本:
   
    修改Action让它可以接受一个MenuItem参数,如果不为空的话,将其加入到菜单中
   
    [csharp]
   
    [ChildActionOnly]
   
    public ActionResult MyMenu(MenuItem mi)
   
    {
   
    MvcLearn.Models.Menu m = new MvcLearn.Models.Menu();
   
    List<MvcLearn.Models.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;
   
    // 这里,如果传入的参数不为空,则将Item加入到菜单中
   
    if(mi!=null)
   
    m.Items.Add(mi);
   
    return PartialView(m);
   
    }
   
    在前台调用的时候要传入参数进去:
   
    [csharp]
   
    @Html.Action(“MyMenu”, new { mi= new MvcLearn.Models.MenuItem(){ Text = “haha”, Url =<a href=“http://www.ms.com”>http://www.ms.com</a>}})

有帮助
(0)
0%
没帮助
(0)
0%