Передача данных JSON из действия контроллера в представление бритвы - PullRequest
1 голос
/ 20 февраля 2012

Я хотел бы знать, как я могу передать данные с контроллера для просмотра в бритве mvc3.Представление находится в файле .cshtml.У меня есть переменная в контроллере, где я храню данные, которые мне нужно передать в элемент управления списка в представлении.

var results = data.Select(item => new { id = item, label = item.Value, value = item.Key });

Выполнение этого:

return Json(results, JsonRequestBehavior.AllowGet);

Дает мне только всплывающее окно с данными, которые необходимо поместить в список:

result

В представлении список находится в аккордеонном управлении:

    <div id="accordion">
    @{int i=0;}
        @foreach (var item in Model.Parameters)
        {
            <h3><a href="#">@Html.LabelFor(m => item.Name, item.Prompt)</a></h3>
            <div>                   

                <div class="editor-field">
                    <select multiple id="@("Select" +item.Name)" name="@("Select" +item.Name)"></select>                           
                </div>                                     
            </div>
            i++;
        }         
    </div>

Итак, я хотел бы знать, что мне следует сделать, чтобы поместить элементы в список вместо отображения всплывающего окна для элемента управления

Новичок в MVC, спасибо за понимание.Заранее спасибо, Laziale

РЕДАКТИРОВАТЬ: вывод в формате Json

{System.Linq.Enumerable.WhereSelectListIterator<System.Collections.Generic.KeyValuePair<string,string>,<>f__AnonymousType1<System.Collections.Generic.KeyValuePair<string,string>,string,string>>}

1 Ответ

2 голосов
/ 20 февраля 2012

возврат JSON к вашему виду бритвы, вероятно, не лучший метод. Я бы предложил использовать viewModel, который сам по себе является классом c #.

namespace Test
{
    public class ViewModel
    {
        public bool GivingAPresentation { get; set; }
    }
}

public class MyController: Controller
{

    public virtual ActionResult Index()
    {
        var model=new ViewModel(){GivingAPresentation =true;}
        return View(model);
    }

}

Ваш код просмотра:

@model Test.ViewModel <!-- Note the full namespace -->

<br>GivingAPresentation: @Model.GivingAPresentation </br>

Если вы вынуждены работать с объектом JSON, который возвращается из вашего действия, то вам нужно сначала десериализовать его, а затем работать с этим объектом. Вы можете прочитать этот пост http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2010/08/22/using-c-4.0-and-dynamic-to-parse-json.aspx о том, как анализировать JSON для динамического объекта c #.

Дайте мне знать, если это поможет.

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