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。进行调用.
...全文
202 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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")

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧