模型列表未从视图返回到Controller [英] Model list is not returning to the Controller from view
问题描述
i有以下学生课程
public class 学生
{
public int stdId { set ; get ; }
public string stdName { get 跨度>; set ; }
public string dept { get 跨度>; set ; }
}
和我的控制器代码是
public ActionResult Student()
{
List< Student> lstStd = new 列表< Student>(){ new 学生()
{stdId = < span class =code-digit> 103 ,stdName = bharath,dept = CSE},
new Student(){stdId = 104 ,stdName = Hari,dept = IT}};
return 查看(lstStd);
}
[HttpPost]
public ActionResult学生(IEnumerable< Student> lstStd)
{
return View();
}
和查看代码是
@使用NewMVC.Models
@model IEnumerable< Student>
< h2>
@using(Html.BeginForm())
{
foreach ( var data in Model)
{
< table>
< tr>
< td>学生姓名
< / td >
< td> @ Html.TextBoxFor(p = > data.stdId)< / td >
< / tr >
< tr>
< td>学生ID
< / td >
< td> @ Html.TextBoxFor(p = > data.stdName)< / td >
< / tr >
< tr>
< td>学生部
< / td >
< td> @ Html.TextBoxFor(p = > data.dept)< / td >
< / tr >
< / table >
}
< input type = submit value = 创建 name = hi />
}
< / h2 >
当我试图从视图中获取绑定的模型数据时,List< student>即将到来。
任何人都可以帮我找到解决方案。
谢谢提前..
你好,我希望这对你有用..改为使用这个
List < span class =code-keyword>< 学生 > lstStd = new List < 学生 > (){ new Student()
{stdId = 103,stdName =bharath,dept =CSE},
new Student(){stdId = 104,stdName =Hari,dept =IT使用
列表< 学生 > lstStd = new List < 学生 > ();
lstStd.add(
{new Student()
{stdId = 103,stdName =bharath,dept =CSE}});
lstStd.add(
new Student(){stdId = 104,stdName =Hari,dept =IT}});
返回查看(lstStd);
如果这不起作用那么请给我评论发生了什么......
ok
您好b $ b
我对您的来源做了一些小改动。请检查。
public class StudentController:Controller
{
//
// GET:/ Student /
public ActionResult Student()
{
StudentList stdlist = new StudentList();
列表< student> lstStd = new 列表< student>(){ new 学生()
{stdId = < span class =code-digit> 103 ,stdName = bharath,dept = CSE},
new Student(){stdId = 104 ,stdName = Hari,dept = IT}};
stdlist.students = lstStd;
return 查看(stdlist);
}
[HttpPost]
public ActionResult学生(StudentList stdlst)
{
return View();
}
}
public class StudentList
{
public 列表< student>学生{获取; set ; }
}
public class 学生
{
public int stdId { set ; get ; }
public string stdName { get 跨度>; set ; }
public string dept { get 跨度>; set ; }
}
查看
@model MyMvcApp.Web.UI.Controllers.StudentList
< h2>
@using(Html.BeginForm())
{
for ( int i = 0 ; i < Model.students.Count(); i ++)
{
< table>
< tr>
< td>学生姓名
< / td >
< td> @ Html.TextBoxFor(p = > Model.students [i] .stdId)< / td < span class =code-keyword>>
< / tr >
< tr>
< td>学生ID
< / td >
< td> @ Html.TextBoxFor(p = > Model.students [i] .stdName)< / td < span class =code-keyword>>
< / tr >
< tr>
< td>学生部
< / td >
< td> @ Html.TextBoxFor(p = > Model.students [i] .dept)< / td < span class =code-keyword>>
< / tr >
< / table >
}
< input type = 提交 value = create name = hi />
}
< / h2 >
请检查以下网址,您可能会知道为什么它不能与foreach合作。< br $> b $ b
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ [ ^ ]
使用以下语法:
@ using(Html.BeginForm(动作名称,控制器名称))
例如在您的代码中
@ using(Html.BeginForm(学生,学生))
向代码隐藏添加断点以检查执行流程
Hi,
i have a student class like below
public class Student
{
public int stdId { set; get; }
public string stdName { get; set; }
public string dept { get; set; }
}
and my controller code is
public ActionResult Student()
{
List<Student> lstStd = new List<Student>() { new Student()
{ stdId = 103, stdName = "bharath", dept = "CSE" },
new Student() { stdId = 104, stdName = "Hari", dept = "IT" } };
return View(lstStd);
}
[HttpPost]
public ActionResult Student(IEnumerable<Student> lstStd)
{
return View();
}
and View code is
@using NewMVC.Models
@model IEnumerable<Student>
<h2>
@using (Html.BeginForm())
{
foreach (var data in Model)
{
<table>
<tr>
<td>Student Name is
</td>
<td>@Html.TextBoxFor(p => data.stdId)</td>
</tr>
<tr>
<td>Student Id is
</td>
<td>@Html.TextBoxFor(p => data.stdName)</td>
</tr>
<tr>
<td>Student Dept is
</td>
<td>@Html.TextBoxFor(p => data.dept)</td>
</tr>
</table>
}
<input type="submit" value="create" name="hi" />
}
</h2>
when i am trying to get the binded model data from the view,the List<student> is coming as null.
Can any one please help me in finding the solution.
Thanks in advance..
hello i hope this works for you.. used instead this
List<Student> lstStd = new List<Student>() { new Student() { stdId = 103, stdName = "bharath", dept = "CSE" }, new Student() { stdId = 104, stdName = "Hari", dept = "IT" } };
use
List<Student> lstStd = new List<Student>() ; lstStd.add( { new Student() { stdId = 103, stdName = "bharath", dept = "CSE" }}); lstStd.add( new Student() { stdId = 104, stdName = "Hari", dept = "IT" }} );
return View(lstStd);
if this not work then please give me comment what is happen...
ok
Hi
I made a small change in your source. Please check.
public class StudentController : Controller { // // GET: /Student/ public ActionResult Student() { StudentList stdlist = new StudentList(); List<student> lstStd = new List<student>() { new Student() { stdId = 103, stdName = "bharath", dept = "CSE" }, new Student() { stdId = 104, stdName = "Hari", dept = "IT" } }; stdlist.students = lstStd; return View(stdlist); } [HttpPost] public ActionResult Student(StudentList stdlst) { return View(); } } public class StudentList { public List<student> students { get; set; } } public class Student { public int stdId { set; get; } public string stdName { get; set; } public string dept { get; set; } }
View
@model MyMvcApp.Web.UI.Controllers.StudentList <h2> @using (Html.BeginForm()) { for(int i = 0; i < Model.students.Count(); i ++) { <table> <tr> <td>Student Name is </td> <td>@Html.TextBoxFor(p => Model.students[i].stdId)</td> </tr> <tr> <td>Student Id is </td> <td>@Html.TextBoxFor(p => Model.students[i].stdName)</td> </tr> <tr> <td>Student Dept is </td> <td>@Html.TextBoxFor(p => Model.students[i].dept)</td> </tr> </table> } <input type="submit" value="create" name="hi" /> } </h2>
Please check the following url, you may get some idea why it is not working with foreach.
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/[^]
use following syntax:
@using (Html.BeginForm(Action name,controller name))
eg in your code
@using (Html.BeginForm(student,student))
Add breakpoints to codebehind to check flow of the execution
这篇关于模型列表未从视图返回到Controller的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!