Результат Json для отображения в ASP.net View - PullRequest
0 голосов
/ 26 апреля 2018

Это моя форма в контактном классе

 <form method="POST">
<fieldset>
    <div class="form-group">
        <input class="form-control" placeholder="E-mail" name="subid" autofocus="">
    </div>
      <button href="" class="btn btn-gm btn-success">View</button>
</fieldset>

Это мой код в контроллере, и у меня есть вид с именем Contact

  [HttpGet]
        public ActionResult Contact()
        {     

            return View();

        }
        [HttpPost]
        public ActionResult Contact(string subid)
        {
            try
            {
                var webClient = new WebClient();
                string url = string.Format(BASE_URL + "Subjectstatus/{0}", subid);
                var json = webClient.DownloadString(url);
                var js = new JavaScriptSerializer();

                ViewBag.attendlist = js.Deserialize<List<attendlist>>(json);

                return View();


            }
            catch
            {
                ViewBag.con = "gg";
                return null;
            }

        }

Это мой список учеников

 public class attendlist
    {
        [Display(Name = "ID")]   
        public string sid { get; set; }
        [Display(Name = "Name")]
        public string name { get; set; }
        [Display(Name = "Subject")]
        public string sub { get; set; }
        [Display(Name = "Date")]
        public string date { get; set; }
    }

Это окно просмотра контактов, которое я пытаюсь зациклить, используя для каждого

@foreach (var dd in ViewBag.attendlist)
{
    <h3>@dd.ID</h3> 

}

Это ошибка, когда я пытаюсь загрузить вид контакта

enter image description here

1 Ответ

0 голосов
/ 26 апреля 2018
[HttpGet]
    public ActionResult Contact()
    {           

        return View( new ViewContact() );

    }
    [HttpPost]
    public ActionResult Contact(ViewContact contact)
    {
        try
        {
            var webClient = new WebClient();
            string url = string.Format(BASE_URL + "Subjectstatus/{0}", contact.subid);
            var json = webClient.DownloadString(url);
            var js = new JavaScriptSerializer();
            attendlist list= js.Deserialize<attendlist>(json)

            contact.attendlist = list;             

            return View(contact);


        }
        catch
        {
            ViewBag.con = "gg";
            return null;
        }

    }

Класс ViewContact

  public class ViewContact
  {
    public attendlist list { get; set; }
    public string subid { get; set; }
  }

И foreach в представлении

 foreach(var dd in Model.list){
          //your html view code
    }

Представление

<form method="POST">
<fieldset>
<div class="form-group">
    @Html.TextBoxFor(m => m.subid, new { @class = "form-control", @placeholder = "Email" }) >
</div>
  <button href="" class="btn btn-gm btn-success">View</button>
</fieldset>

* Примечание текстовое поле для, получить модельatributte и позже он корректно привязывает его к действию submit

* Обратите внимание, что теперь вам нужно передавать контекст, а не строку, в действие Contact (ViewContact contact)

...