2009-12-15 4 views
0
[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Edit(string id_stud) 
    { 

      ViewData["stud"] = id_stud; 

     return View("temp"); 
    } 

temp.aspx:как разместить больше строк

<h2><%= Html.Encode(ViewData["stud"]) %></h2> 

Эта страница показывает только один студент. Как отобразить других студентов?

ответ

0

Содержание зрения темп должен быть чем-то следующим образом:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<IEnumerable<MvcApplication1.Models.Student>>" %> 

<table> 
<% foreach (var item in Model) { %> 
    <tr> 
     <td> 
      <%= Html.Encode(item.Id) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.FirstName) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.LastName) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.Age) %> 
     </td> 
    </tr> 
<% } %> 
</table> 

Содержание редактировать вид:

<% using (Html.BeginForm()) 
    { %> 
    <fieldset> 
     <% foreach (Student s in Model) 
      { %> 
      <%= Html.Hidden("Id", s.Id)%> 
      <p> 
       <span>First Name</span><br /> 
       <%= Html.TextBox("FirstName", s.FirstName)%> 
      </p> 
      <p> 
       <span>Last Name</span><br /> 
       <%= Html.TextBox("LastName", s.LastName)%> 
      </p> 
      <p> 
       <span>Age</span><br /> 
       <%= Html.TextBox("Age", s.Age)%> 
      </p> 
      <hr /> 
     <% } %> 
     <input type="submit" value="Submit" /> 
    </fieldset> 
<% } %> 

Класс студент структура:

namespace MvcApplication1.Models 
{ 

    public class Student 
    { 

     public int Id { get; set; } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
     public int Age { get; set; } 

    } 

} 

Наконец, контроллер:

using System.Collections.Generic; 
using System.Web.Mvc; 
using MvcApplication1.Models; 

namespace MvcApplication1.Controllers 
{ 

    public class HomeController : Controller 
    { 

     public ActionResult Index() 
     { 
      List<Student> students = new List<Student>(); 

      // Fill with dummy data for test. 
      students.Add(new Student 
      { 
       Id = 1, 
       FirstName = "X", 
       LastName = "X", 
       Age = 20 
      }); 

      students.Add(new Student 
      { 
       Id = 2, 
       FirstName = "Y", 
       LastName = "Y", 
       Age = 30 
      }); 

      return View(students); 
     } 

     [AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Index(int[] id, string[] firstName, string[] lastName, int[] age) 
     { 
      List<Student> students = new List<Student>(); 

      for (int i = 0; i < id.Length; i++) 
      { 
       students.Add(new Student 
       { 
        Id = id[i], 
        FirstName = firstName[i], 
        LastName = lastName[i], 
        Age = age[i] 
       }); 
      } 

      return View("Shows", students); 
     } 

    } 

} 
+0

В temp.aspx я хочу показать список студентов. Этот список публикуется на странице «Редактировать». – Ognjen

+0

Ну, страница редактирования публикует список учащихся. Но откуда берутся эти данные? –

+0

Редактировать - это действие контроллера, которое отправляет данные (список студентов) в edit.aspx. В temp.aspx я хочу показать список опубликованных студентов из edit.aspx – Ognjen

0

Использование массива:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Edit(string id_stud) 
{ 
    ViewData["student_ids"] = new int[] { 1, 2, 3, 4 }; 
    return View("temp"); 
} 

<% foreach (int stud_id in (int[])ViewData["student_ids"]) { %> 
    <h2><%= Html.Encode(stud_id.ToString()) %></h2> 
<% } %> 
Смежные вопросы