2
Answers

How to pass data from view to controller using model binding

Hello,
 
Please help to understand how pass view values to controller as parameters on clicking of filter button below is my code sample
 
View
  1. @model UniPro.Web.Models.EmployeeDashboardModel  
  2. @{  
  3. ViewBag.Title = "EmployeeList";  
  4. Layout = "~/Views/Shared/_Layout.cshtml";  
  5. }  
  6. <h2>LocationList</h2>  
  7. @using (Html.BeginForm("filterLOV""EmployeeLocationList", FormMethod.Get))  
  8. {  
  9. <div class="contentbox">  
  10. <p class="contentboxheading">  
  11. @ViewBag.Title  
  12. </p>  
  13. <div class="contentbox_innercontent">  
  14. <table width="100%">  
  15. <tr>  
  16. <td >  
  17. @Html.Hidden("ID",Model.EmpListLOV,new { id = "empID"})  
  18. <label class="highlightlabel">ID</label>  
  19. </td>  
  20. <td >  
  21. @Html.DevExpress().TextBox(  
  22. txtsetting =>  
  23. {  
  24. txtsetting.Name = "txtemployeeID";  
  25. txtsetting.ClientEnabled = true;  
  26. txtsetting.Width = System.Web.UI.WebControls.Unit.Pixel(150);  
  27. txtsetting.Height = System.Web.UI.WebControls.Unit.Pixel(25);  
  28. txtsetting.Properties.MaxLength = 50;  
  29. ().value); }";  
  30. }).GetHtml()  
  31. </td>  
  32. <td >  
  33. <label class="highlightlabel">Name</label>  
  34. </td>  
  35. <td >  
  36. @Html.Hidden("Name", Model.EmpListLOV, new { id = "hiddenName" })  
  37. @Html.DevExpress().TextBox(  
  38. txtsetting =>  
  39. {  
  40. txtsetting.Name = "txtemployeeName";  
  41. txtsetting.ClientEnabled = true;  
  42. txtsetting.Width = System.Web.UI.WebControls.Unit.Pixel(150);  
  43. txtsetting.Height = System.Web.UI.WebControls.Unit.Pixel(25);  
  44. txtsetting.Properties.MaxLength = 50;  
  45. }).GetHtml()  
  46. </td>  
  47. <td >  
  48. <label class="highlightlabel">Age</label>  
  49. </td>  
  50. <td >  
  51. @Html.Hidden("Age", Model.EmpListLOV, new { id = "hiddenAge" })  
  52. @Html.DevExpress().TextBox(  
  53. txtsetting =>  
  54. {  
  55. txtsetting.Name = "txtemployeeAge";  
  56. txtsetting.ClientEnabled = true;  
  57. txtsetting.Width = System.Web.UI.WebControls.Unit.Pixel(150);  
  58. txtsetting.Height = System.Web.UI.WebControls.Unit.Pixel(25);  
  59. txtsetting.Properties.MaxLength = 50;  
  60. }).GetHtml()  
  61. </td>  
  62. <td >  
  63. <label class="highlightlabel">Maritial Status</label>  
  64. </td>  
  65. <td >  
  66. @Html.Hidden("EMPMaritial_Status", Model.maritial_StatusList, new { id = "hiddenstatus" })  
  67. @Html.DevExpress().ComboBox(  
  68. settings =>  
  69. {  
  70. settings.Name = "drostatus";  
  71. settings.Width = System.Web.UI.WebControls.Unit.Pixel(100);  
  72. //settings.Style.Add("width", "85");  
  73. settings.Properties.DropDownStyle = DevExpress.Web.ASPxEditors.DropDownStyle.DropDownList;  
  74. settings.Properties.TextFormatString = "{0}";  
  75. settings.Properties.ValueType = typeof(string);  
  76. settings.Properties.ValueField = "ID";  
  77. settings.Properties.TextField = "EMPMaritial_Status";  
  78. }).BindList(Model.maritial_StatusList).GetHtml()  
  79. <td >  
  80. <label class="highlightlabel">Location</label>  
  81. </td>  
  82. <td >  
  83. @Html.Hidden("EMP_Location", Model.LocationLOV, new { id = "hiddenLocation" })  
  84. @Html.DevExpress().ComboBox(  
  85. settings =>  
  86. {  
  87. settings.Name = "droLocation";  
  88. settings.Width = System.Web.UI.WebControls.Unit.Pixel(100);  
  89. //settings.Style.Add("width", "85");  
  90. settings.Properties.DropDownStyle = DevExpress.Web.ASPxEditors.DropDownStyle.DropDownList;  
  91. settings.Properties.TextFormatString = "{0}";  
  92. settings.Properties.ValueType = typeof(string);  
  93. settings.Properties.ValueField = "ID";  
  94. settings.Properties.TextField = "EMP_Location";  
  95. }).BindList(Model.LocationLOV).GetHtml()  
  96. </td>  
  97. <td >  
  98. <input type="button" name="btnSearch" id="btnFilter" value="Apply Filter" class="buttoncss" title="Click for Search" style="width: 100px;" />  
  99. </td>  
  100. </tr>  
  101. </table>  
  102. </div>  
  103. <div align="center" style="margin-top:3%" id="container">  
  104. @Html.Partial("EmplyeeDemoGridPartial", Model.EmpListLOV)  
  105. </div>  
  106. </div>  
  107. }  
controller
  1. public ActionResult FilterLOV(int? txtemployeeID, string txtemployeeName, int? txtemployeeAge,int? droLocation)  
  2. {  
  3. List<EmployeeDemoObjectDomain> empSearch = new List<EmployeeDemoObjectDomain>();  
  4. IEmployeeDemoBusinessService empSearchBS = new EmployeeDemoBusinessService();  
  5. empSearch = empSearchBS.GetEmployeeByFilter(txtemployeeID, txtemployeeName,txtemployeeAge, droLocation);  
  6. return PartialView("EmplyeeDemoGridPartial", empSearch);  
  7. }  
Model
  1. public class EmployeeDashboardModel  
  2. {  
  3. public List<EmployeeDemoObjectDomain> EmpListLOV { getset; }  
  4. public List<LocationLOV> LocationLOV{get;set;}  
  5. public List<Maritial_StatusDemoList> maritial_StatusList { getset; }  
  6. }  
Firstly i was using ajax call to pass the data from the view to controller but i want to do the same with model binding.
 
Please suggest.

Answers (2)