Показать список переменных в виде MVC - PullRequest
1 голос
/ 19 декабря 2011

Я должен напечатать / отобразить значения нескольких переменных в виде MVC.Как я могу это сделать ..

public ActionResult DisplayVariables()
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";           
        {               
           //After some process/logic.. variables get assigned values here..
                int var1 = xxxxxx;
                int var2 = xxxxx;
                int var3 = xxxxxx;
                int var4 = xxxxx;    
        }
        return View()  //I want to display variables values with lables here in this 
                       //view. I already have a view with name "DisplayVariables"
    }

Ответы [ 4 ]

4 голосов
/ 19 декабря 2011

Вы можете сделать это в представлении, выполнив что-то вроде

@ViewBag.Message.var1

Хотя было бы лучше создать модель представления и передать ее в ваше представление.

0 голосов
/ 02 марта 2012

Ну, это немного старый пост, но он может сэкономить время для других.Я сделал частичное представление, которое использует отражение для отображения свойств объектов

@using System.Reflection;
@{
    Object l_o = ViewBag.ObjectToDisplay;
}
<style type="text/css">
    table,th,td
    {
        border:1px solid green;
        border-collapse:collapse;
        padding:3px;
    }
    th
    {
        background-color:green;
        color:white;
    }
    #display-title
    {
        font-size:large;
        color:green;
    }
</style>
<div>
    <div id="display-title">@l_o.GetType().Name</div>
    <table> 
    <tr>
        <th>Property</th>
        <th>Value</th>
    </tr>

    @foreach (PropertyInfo l_info in l_o.GetType().GetProperties())
    {
        <tr> 
            <td> 
                <div class="display-label" style="text-align: right;"> 
                    @l_info.Name 
                </div> 
            </td> 
            <td> 
                <div class="display-value"> 
                    @l_info.GetValue(l_o, null) 
                </div> 
            </td> 
        </tr> 
    }
    </table>
</div>

Затем я использую это как

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <title>Register</title>
</head>
<body>
    @Html.Partial("ObjectPropertiesView") 
</body>
</html>

Не забудьте установить ViewBag.ObjectToDisplay в вашем контроллере.

0 голосов
/ 19 декабря 2011

Для полноты приведем очень простой пример того, как вы должны создать строго типизированное представление, модель представления и передать данные.

Определение модели представления:

namespace MyNameSpace.ViewModels
{
    public class MyViewModel
    {
        public string Var1;
        public string Var2;
        public string Var3;
    }
}

Заполнениеэто в вашем контроллере:

public ActionResult DisplayVariables()
{
    var model = new MyViewModel
    {
        Var1 = "Foo",
        Var2 = "Bar",
        // ...
    }

    return View(model);
}

Наконец, объявите модель в вашем представлении (в DisplayVariables.cshtml)

@* Note the small 'm' here.  You'll probably need to 
   put a namespace in front of the type name as well. *@
@model MyNameSpace.ViewModels.MyViewModel

@Model.Var1<br />
@Model.Var2<br />
0 голосов
/ 19 декабря 2011

Я использовал объект расширения для этого.Пожалуйста, смотрите мой ответ ниже ..

public ActionResult DisplayVariables()
{
    ViewBag.Message = "Welcome to ASP.NET MVC!";    

    dynamic Model = new ExpandoObject();

    {               
       //After some process/logic.. variables get assigned values here..

            int var1 = xxxxxx;
            int var2 = xxxxx;
            int var3 = xxxxxx;
            int var4 = xxxxx;   

           Model.var1 = var1;
           Model.var2 - var2;  
           Model.var3 = var3;
           Model.var4 - var4;  
    }

    return View(Model)  //I want to display variables values with lables here in this 
                   //view. I already have a view with name "DisplayVariables"
}

и в представлении .. У меня есть

  <h2><%=Model.var1%></h2> 

Как это решение .., кажется, работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...