将数据从Model传递到View

时间:2016-08-01 18:17:17

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

我有一个带有数据列表的模型,我的View访问模型属性并呈现数据库状态。我的视图中有几个框根据数据库中各自的值显示颜色。每个div对应于数据库中的一个项目。

我知道我没有以正确的方式编码我的视图,但它是我希望我的视图看起来像(每个div ID对应于数据库中相应的boxID并显示其各自的颜色)。我想要在View中表示500个数据库值。

@model List<My.Namespace.BoxStatusModel>

<table>
    <tr class="first">
        <td class="dclass1">    
            <div id="@boxStatus.boxID" class="top @boxStatus.Color">
            <div id="@boxStatus.boxID" class="top @boxStatus.Color">
            <div id="@boxStatus.boxID" class="bottom @boxStatus.Color">
            <div id="@boxStatus.boxID" class="bottom @boxStatus.Color">
        </td>
        <td class="dclass2">    
            <div id="@boxStatus.boxID" class="top @boxStatus.Color">
            <div id="@boxStatus.boxID" class="top @boxStatus.Color">
            <div id="@boxStatus.boxID" class="bottom @boxStatus.Color">
            <div id="@boxStatus.boxID" class="bottom @boxStatus.Color">
        </td>
        ...          
    </tr>
    <tr class="second">
    ...
    </tr>
</table>

我的控制器

public class HomeController : Controller
{       
    public ActionResult Index()
    {
        MySQL msql = new MySQL();                          
        List<List<string>> results = msql.SelectTable("Select boxID, boxStatus from BoxStatusModel");
        List<BoxStatusModel> model = new List<BoxStatusModel>();    

        for (int i = 0; i < results.Count; i++)
        {
                model.Add(new BoxStatusModel()
                {
                    slotID = results[i][0],
                    currentStatus = results[i][1]
                });
        } 
        return View(model);
    }        
}

我的ViewModel

namespace My.ViewModels
{
    public class BoxStatusModel
    {
        public int ID { get; set; }

        public string boxID { get; set; }

        public string boxStatus { get; set; }

        public string Color
        {
            get
            {
                switch (boxStatus)
                {
                    case "busy":
                    return "red";

                    case "available":
                    return "green";

                    default:
                    return "";
                }
            }
        }
    }
}

0 个答案:

没有答案