2

我创建了一个强类型视图。我想将 IEnumerable 对象或数据从视图传递到控制器。以下是我的模型控制器视图

我的模型:

public class UserDetailsClass
{
    public static FeedbackDatabaseDataContext context = new FeedbackDatabaseDataContext(); 
    public class Tablefields
    {
        [Key]
        public  int ID { get; set; }

        [Required(ErrorMessage = "Email is required")]            
        public  string EmailID { get; set; }

        [Required(ErrorMessage="Password is required")]
        public string Password { get; set; }

        [Required(ErrorMessage = "First Name is required")] 
        public  string FirstName { get; set; }

        [Required(ErrorMessage = "Last Name is required")] 
        public string  LastName { get; set; }
    }
    public static List<UserDetails> getalluser()
    {
        var lst = (from r in context.UserDetails select r);
        return lst.ToList();        
    }
 }

我的控制器

 public ActionResult Test()
    {

        IList<UserDetailsClass.Tablefields> viewmodel = new List<UserDetailsClass.Tablefields>();
        var q = UserDetailsClass.getalluser().ToList();

        foreach (SQLOperation.Models.UserDetails item in q)
        {
            UserDetailsClass.Tablefields viewItem = new UserDetailsClass.Tablefields();

            viewItem.EmailID = item.Email;
            viewItem.FirstName = item.FirstName;
            viewItem.LastName = item.LastName;
            viewItem.Password = item.Password;

            viewmodel.Add(viewItem);
        }
        return View(viewmodel);
    }

    [HttpPost]
    public ActionResult Test(IEnumerable<UserDetailsClass.Tablefields> items)
    {
        return View();
    }

我的看法

@model  IEnumerable<SQLOperation.Models.UserDetailsClass.Tablefields>

@{
    ViewBag.Title = "Test";
 }

 <h2>Test</h2>

@using (Html.BeginForm())
{
<table>
<tr>
    <th>
        EmailID
    </th>
    <th>
        Password
    </th>
    <th>
        FirstName
    </th>
    <th>
        LastName
    </th>
    <th></th>
</tr>

@foreach (var item in Model)
{
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.EmailID)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Password)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.FirstName)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.LastName)
    </td>
   </tr> 
   }
</table>
  <input  type="submit" value="submit" />     
}

我在items中没有得到任何值。当我在它上面设置断点时,它在items中显示NULL 我完全对如何将值传递给控制器​​感到困惑。

谢谢你,阿莫尔

4

2 回答 2

1

而不是@Html.DisplayForuse @Html.EditorFor,这种方式数据绑定将在您的表单中发生。

此外,由于您使用的是集合,因此您需要迭代您的字段(简化示例):

                    @for (int row = 0; row < Model.Count; row++)
                    {
                            @Html.EditorFor(x => x[row].FirstName )

                    }
于 2012-08-22T13:20:47.033 回答
-1
 @for (int i = 0; i < Model.length; i ++)
 {
 <tr>
    <td>
        @Html.DisplayFor(model => Model[i].EmailID)
    </td>
     <td>
        @Html.DisplayFor(model => Model[i].Password)
     </td>
     <td>
          @Html.DisplayFor(model => Model[i].FirstName)
     </td>
     <td>
        @Html.DisplayFor(model => Model[i].LastName)
     </td>
     </tr> 
   }
 </table>
      <input  type="submit" value="submit" />     
 }
于 2012-08-22T18:47:39.547 回答