控制器操作:
public string Index(){
var tmp = (from i in Message.message
where i.To == "bognjen" && i.Read == false
select i.Read).Count().ToString();
return tmp;
}
观点的一部分:
<li><a>Inbox <%=Html.Action("Index","MyController")%></a></li>
当动作Index
返回字符串时,它不会使用<li>
的应用样式进行格式化。如何格式化这个字符串?
例如: 动作索引返回编号4,然后查看页面显示:收件箱4.问题:收件箱有一种样式(字体和大小),4有其他样式(与其他字体和大小)
<li>
的样式是:
li {
list-style:none;
background:url(images/bullet.png) no-repeat 0 5px;
padding:3px 0 3px 17px;
}
此样式应该适用于Index操作的返回数据(在我的示例中为4)
答案 0 :(得分:1)
有更好的方法可以做到这一点。例如:
在某个控制器上创建此操作方法(让我们称之为MasterController
):
[ChildActionOnly]
public ActionResult InboxStatus()
{
var model = new InboxStatusViewModel();
model.UnreadMessageCount = from i in Message.message
where i.To == "bognjen" && i.Read == false
select i.Read).Count();
return PartialView(model);
}
InboxStatusViewModel
只是一个POCO。
然后创建部分视图InboxStatus.ascx
:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<InboxStatusViewModel>" %>
<li><a>Inbox (<%:Model.UnreadMessageCount %>)</a></li>
然后只需在视图中调用Html.RenderAction()
,并指定您希望来自InboxStatus
的{{1}}操作。这将呈现链接,它将被设置样式和所有内容。
答案 1 :(得分:0)
var tmp = (from i in Message.message
where i.To == "bognjen" && i.Read == false
select i.Read).Count().ToString();
那应该返回一个数字。要格式化,请将格式字符串添加到ToString()