ASP.NET MVC新手求教.如何多个cshtml使用同一个ActionResult提供数据?

寒叶gg 2013-04-02 10:23:40
就是类似asp.net webform中的用户自定义空间ascx

在webform中创建一个ascx控件,会有后台方法提供数据。那么网站上线后我复制几个ascx都能正常调用,
<%@ Register TagPrefix="Gp" TagName="Header" Src="Control/Top.ascx" %>
<%@ Register TagPrefix="Gp" TagName="Header" Src="Control/Top1.ascx" %>
<%@ Register TagPrefix="Gp" TagName="Header" Src="Control/Top2.ascx" %>


这3个ascx其实用的都是一个后台UserControl 方法也就是 Inherits 一样。

MVC如何做到这一点呢?

我现在只能用笨方法。
后台
    public class TestData
{
public static List<string> Test()
{
List<string> a=new List<string>{"a","b","c","1","2","3"};
return a;
}
}


cshtml里用

@foreach (var t in TestData.Test())
{
@t
<br>
}

来进行多个cshtml使用同一数据源..不知道MVC中有没有类似webform中使用ascx的方法?

分部视图好像 一个ActionResult只能对应一个cshtml。进行调用.
...全文
138 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bindofn 2013-04-03
Html.RenderPartial("top");在主页中引用返回部分视图,跟用户控件一样的 public PartialResult top() { var Model=new{dd="ss"}; return View(Model); }
回复
寒叶gg 2013-04-02
这样的话还是得在父页面提前读好数据。诶。
回复
白云任去留 2013-04-02
传参你用RenderPage吧,例: @RenderPage("~/Views/Partial/_TopPartial.cshtml", new { param = "abc", param2 = "def"}) 接收参数:if (@PageData["param"] == "abc"){…}
回复
寒叶gg 2013-04-02
那能不能这样? public ActionResult Top(string path) { var Model=new{dd="ss"}; return View(path,Model); } 这种方式,视图里怎么调用呢?就是传入path变量
回复
白云任去留 2013-04-02
用Html.Partial 、Html.RenderPartial、Html.Action 、Html.RenderAction 也都可实现!
回复
白云任去留 2013-04-02
例:

[HttpGet]
        public ActionResult Top()
        {
            return View("~/Views/Html/Partial/_TopPartial.cshtml");
        }

@Html.Action("Top", "Html")
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2013-04-02 10:23
社区公告
暂无公告