0

This sounds really basic yet I couldn't find the answer.

I pass a Message struct to the View and I want to display it.

Message.Category フィールドが「Technical」の場合、「Technical Problem」と表示したいのですが、そうでない場合はそのまま表示します。

技術的な問題がステートメントではなく、表示したい 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>

私が望んでいたように動作します。

4

3 に答える 3

0

これはあなたが探しているものですか?

@("Technical Problem")

あるいは

<text>Technical Problem</text>

あるいは

@:Technical Problem

構文については、http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspxをお読みください。

于 2012-06-12T09:11:55.083 に答える
0

使用できます

<text>Technical Problem</text>

このため。

于 2012-06-12T09:12:57.847 に答える
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>
    }
}
于 2012-06-12T09:21:23.283 に答える