@Html.DisplayName неправильно отображает адрес электронной почты

пытаюсь отобразить вот так

var value = "[email protected]"

@Html.DisplayName(value)

Результат: только com.

Почему? что нужно использовать в этом случае

здесь я объясняю больше

Мое намерение состоит в том, чтобы отображать контент в очень общем виде с сеткой.

public class Grid
{
    private  Type type { get; set; }

    public Grid(IEnumerable datasource)
    {
        if (datasource == null)
        {
            throw new ArgumentNullException("datasource");
        }

        this.type = datasource.GetType().GetGenericArguments().Single();
        this.Data = datasource;
    }

    public IEnumerable Data { get; set; }

    public IEnumerable<System.Reflection.PropertyInfo> Props
    {
        get
        {
            return this.type.GetProperties().AsEnumerable();
        }
    }
}

Это мой класс С# для сетки. я присваиваю значения Grid.data и с помощью viewbag я отправляю данные сетки для просмотра, а затем я использую это с частичным представлением

здесь мой частичный код просмотра

  @if (Model != null)
{
    <table style="width: 100%">
        <thead>
            <tr>
                @foreach (var col in Model.Props)
                {

                    <th>@Html.Label(col.Name)</th>

                }
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model.Data)
            {
                <tr>
                    @foreach (var prop in Model.Props)
                    {
                        var val = prop.GetValue(item, null).ToString();
                        <td>@Html.DisplayName(val)</td>

                    }
                    </tr>
                }
            </tbody>



    </table>
}

Наконец-то я получил ответ на это. Но я не удовлетворен тем, что для этого есть другое хорошее решение.

var val = "[email protected]";
    <span>@val</span>

person Kartheek    schedule 10.04.2013    source источник
comment
Почему вы используете DisplayName вместо DisplayFor? Также вы устанавливаете переменную в своем контроллере или в представлении?   -  person PW Kad    schedule 10.04.2013
comment
На самом деле, размышляя, я получаю свойства и значения и делаю таблицу. там я могу получить только свойство и значение в виде строкового выражения. поэтому я использую только DisplayName   -  person Kartheek    schedule 10.04.2013
comment
Он читает вашу строку как вложенное свойство. См. этот вопрос: stackoverflow.com/questions/ 11547631/   -  person Splendor    schedule 10.04.2013
comment
Можете ли вы опубликовать код, немного более конкретный для того, что вы делаете? Просто учитывая приведенный выше пример, я бы рекомендовал просто использовать @value для отображения значения строки.   -  person Jeremy    schedule 10.04.2013
comment
Эй, я очень подробно отредактировал свой вопрос   -  person Kartheek    schedule 11.04.2013
comment
я добавил альтернативу. но я ожидаю хороший ответ.   -  person Kartheek    schedule 12.04.2013