【发布时间】:2010-06-10 01:29:16
【问题描述】:
我有一个带有典型 TitleContent 和 MainContent 的 ASP.NET MVC 视图,我想计算一个相当复杂的标题,然后在这两个内容部分之间共享,如下所示:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%
var complicatedTitle = string.Format("{0} - {1}", Model.FirstThing, Model.SecondThing);
%>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
<%: complicatedTitle %>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2><%: complicatedTitle %></h2>
</asp:Content>
但是,这不起作用,因为生成的错误消息会说在包含内容控件的内容页面中只允许直接使用内容控件。
计算肯定属于视图。你如何解决这个问题?
【问题讨论】:
-
您能否提供更多背景信息?特别是为什么不能在控制器中进行计算?
-
在这种特定情况下,它实际上并不那么重要:模型中有两个字符串组成了标题,需要用冒号':'分隔,如“类型:恐怖”或“额定:R",但在某些用途中没有第二个字符串(它为 null 或空),并且在这种情况下不需要冒号。这听起来几乎是微不足道的,但是在页面中进行两次相同的计算会使它变得笨拙。在控制器中执行此操作似乎也毫无意义,因为它不应该知道标题是否必须格式化为“{0} : {1}”或“{0} ({1})”。
标签: asp.net-mvc