这听起来很基本但我找不到答案。
我将一个Message结构传递给View,我想显示它。
如果Message.Category字段是“技术”我想显示“技术问题”,否则只是按原样显示它。
如何让视图理解技术问题不是声明,而是我要显示的html文本?
我的代码:
<span class="cright" id="cat">
@{
if (String.Compare(ViewBag.Message.Category, "Technical") == 0)
{
Technical Problem <----THIS
}
else @ViewBag.Message.Category
}
</span>
更多信息: 我正在研究消息传递系统。用户创建消息并在发送消息时可以查看消息。该类别是强制性的(问题,建议或技术问题)并且为了避免数据库中的冗余,我将最后一个选项截断为“技术”,但是当用户查看他们发送的消息时,我希望它完全显示。
谢谢大家;从你到达的所有答案:
<span class="cright" id="cat">
@if (ViewBag.Message.Category == "Technical ")
{<text>Technical Problem</text>}
else
{<text>@ViewBag.Message.Category</text>}
</span>
正如我想的那样工作。
答案 0 :(得分:0)
这是你在找什么?
<击> 撞击>
<击>@("Technical Problem")
击> <击> 撞击>
替代地
<text>Technical Problem</text>
替代地
@:Technical Problem
阅读http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx了解语法..
答案 1 :(得分:0)
您可以使用
<text>Technical Problem</text>
为此。
答案 2 :(得分:0)
原始答案
if(ViewBag.Message.Category == "Technical")
{
<span>Technical problem</span>
}
else
{
<span>Problem is : @(ViewBag.Message.Category)</span>
}
更新了答案
//Model
public class Message
{
public int ID {get; set;}
public string Message {get; set;}
public string Category {get; set;}
}
//Controller
public ActionResult Index()
{
//If you use Linq to Sql, I made this up but this should give you an idea
using(MessageDataContext context = new MessageDataContext())
{
var messages = context.Messages.Where(m => m.Category == "Technical")
.Select(m => new Message { ID = m.ID, Message = m.Text, Category = m.Category});
return View(messages);
}
}
//View
@model IEnumerable<Message>
@foreach(var message in Model)
{
if(message.Category == "Technical")
{
//Id and class will be "TechnicalMessage1"
//Now you can create css class called "TechnicalMessage1" and only message with Id = 1 will have it
<span id="@(message.Category)Message@(message.ID)" class="@(message.Category)Message@(message.ID)">Technical problem</span>
}
else
{
<span>Problem is : @(ViewBag.Message.Category)</span>
}
}