【问题标题】:Using the same code in different (partial) views在不同(部分)视图中使用相同的代码
【发布时间】:2010-06-01 15:02:54
【问题描述】:

也许这个问题很简单,因为我是 MVC2 的新手。我有一个简单的演示 MVC 项目。

(1) 弱类型视图:Index.aspx

<% Html.RenderPartial("ArticalList", ViewData["AllArticals"] as List<Artical>); %>

(2) 强类型分部视图:ArticalList.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<Artical>>" %>
<% foreach (Artical a in Model)  { %>
           <%= Html.ActionLink(a.Title, "About", new { id = a.ID })%><br />
<%} %>

(3) 这是 HomeController.cs

   public ActionResult Index()
    {
        ViewData["AllArticals"] = Artical.GetArticals();
        return View();
    }

public ActionResult ArticalList()
{
    return PartialView(Artical.GetArticals());
}

对不起,我使用的是 Web-Form“角度”,因为如果我使用的是 Web-Form,当我访问 Index.aspx 时,渲染 ArticalList.ascx 将调用 public ActionResult ArticalList()。但是在这里我需要在两个动作中写两次 Artical.GetArticals() 。如何将它们合二为一?

【问题讨论】:

    标签: c# asp.net asp.net-mvc-2


    【解决方案1】:

    据我了解,作为 MVC 的最近新手,部分视图不使用控制器中的操作方法。 "ArticalList" 只是对部分视图文件的引用,不会对操作方法提出另一个请求。部分视图从调用它的视图中获取所有数据。

    Html.RenderAction 可能是您感到困惑的行为。

    【讨论】:

    • 太棒了!这就是我想要的!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-10-13
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    相关资源
    最近更新 更多