Guest User

Untitled

a guest
Sep 13th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.91 KB | None | 0 0
  1. Strongly-Typed Model Not Posting from Partial View
  2. public class PreferencePrograms : List<PreferenceProgram>
  3.  
  4. @model ProfilePreferenceCenterProto.Models.UserViewModel
  5.  
  6. @{ Html.RenderPartial("Preferences", Model); }
  7.  
  8. @model ProfilePreferenceCenterProto.Models.UserViewModel
  9.  
  10. <div id="accordian">
  11. @using(Ajax.BeginForm("PreferencesSubmit", "Profile", new AjaxOptions{ UpdateTargetId = "accordian" })){
  12.  
  13. <div id="accordion">
  14.  
  15. <ul class="tabs">
  16.  
  17. </ul>
  18.  
  19. <div class="panes">
  20. <div>
  21. @{
  22. List<string> AffiliateNames = new List<string>();
  23. foreach(ProfilePreferenceCenterProto.Models.PreferenceProgramModel list in Model.PrefPrograms)
  24. {
  25. AffiliateNames.Add(list.SubcategoryName);
  26. }
  27.  
  28. IEnumerable<string> listNames = AffiliateNames.Distinct();
  29. int counter = 0;
  30. }
  31.  
  32. @foreach (string AccordionTabName in listNames)
  33. {
  34. <h2>@AccordionTabName</h2>
  35. <div class="pane" @if (counter == 0){ <text>style="display:block;"</text> } >
  36. <table>
  37. <tr class="row">
  38. <th class="name">Subscription</th>
  39. <th class="icon">Email</th>
  40. <th class="icon">SMS</th>
  41. <th class="icon">Facebook</th>
  42. <th class="icon">Mail</th>
  43. <th class="icon">Phone</th>
  44. </tr>
  45.  
  46. @{
  47. counter++;
  48. var TabPrograms = (from l in Model.PrefPrograms
  49. where l.SubcategoryName == @AccordionTabName
  50. select l);
  51. }
  52. @Html.EditorFor(m => TabPrograms)
  53. </table>
  54. </div>
  55. }
  56. </div>
  57.  
  58. </div>
  59. </div>
  60. <div align="center"><input type="submit" value="Save Preferences" /></div>
  61.  
  62. @model ProfilePreferenceCenterProto.Models.PreferenceProgramModel
  63.  
  64. <tr class="row">
  65. <td class="name">@Model.ListName</td>
  66. <td class="icon">
  67. @if (Model.EmailEnabled)
  68. {
  69. <a id="@Model.EmailFilterID" href="#" onclick="ImageClick(@Html.IdFor(m => m.EmailStatus));"><img height="25" width="28" src="@Model.Email_Icon_NotSelected" /></a>
  70. }
  71. </td>
  72. <td class="icon">
  73. @if (Model.SMSEnabled)
  74. {
  75. <a id="@Model.SMSFilterID" href="#"><img height="25" width="28" src="@Model.SMS_Icon_NotSelected" /></a>
  76. }
  77. </td>
  78. <td class="icon">
  79. @if (Model.FBEnabled)
  80. {
  81. <a id="@Model.FBFilterID" href="#"><img height="25" width="28" src="@Model.FB_Icon_NotSelected" /></a>
  82. }
  83. </td>
  84. <td class="icon">
  85. @if (Model.MailEnabled)
  86. {
  87. <a id="@Model.MailFilterID" href="#"><img height="25" width="28" src="@Model.Mail_Icon_NotSelected" /></a>
  88. }
  89. </td>
  90. <td class="icon">
  91. @if (Model.PhoneEnabled)
  92. {
  93. <a id="@Model.PhoneFilterID" href="#"><img height="25" width="28" src="@Model.Phone_Icon_NotSelected" /></a>
  94. }
  95. </td>
  96. </tr>
  97.  
  98. @Html.HiddenFor(m => m.EmailStatus)
  99. @Html.HiddenFor(m => m.SMSStatus)
  100. @Html.HiddenFor(m => m.FBStatus)
  101. @Html.HiddenFor(m => m.MailStatus)
  102. @Html.HiddenFor(m => m.PhoneStatus)
  103.  
  104. <script type="text/javascript">
  105. $(document).ready(function () {
  106.  
  107. function ImageClick(Resource) {
  108. alert(Resource.attr("value"));
  109. if (Resource.attr("value") != 1) {
  110. Resource.val("1");
  111. }
  112. else {
  113. Resource.val("2");
  114. }
  115. alert(Resource.attr("value"));
  116. }
  117.  
  118. if ("@Model.EmailEnabled" == "True") {
  119. $("#@Model.EmailFilterID").click(function () {
  120.  
  121. ImageClick($("#@Html.IdFor(m => m.EmailStatus)"));
  122. return false;
  123. });
  124. }
  125.  
  126. if ("@Model.SMSEnabled" == "True") {
  127. $("#@Model.SMSFilterID").click(function () {
  128. ImageClick($("#@Html.IdFor(m => m.SMSStatus)"));
  129. return false;
  130. });
  131. }
  132.  
  133. if ("@Model.FBEnabled" == "True") {
  134. $("#@Model.FBFilterID").click(function () {
  135. ImageClick($("#@Html.IdFor(m => m.FBStatus)"));
  136. return false;
  137. });
  138. }
  139.  
  140. if ("@Model.MailEnabled" == "True") {
  141. $("#@Model.MailFilterID").click(function () {
  142. ImageClick($("#@Html.IdFor(m => m.MailStatus)"));
  143. return false;
  144. });
  145. }
  146.  
  147. if ("@Model.PhoneEnabled" == "True") {
  148. $("#@Model.PhoneFilterID").click(function () {
  149. ImageClick($("#@Html.IdFor(m => m.PhoneStatus)"));
  150. return false;
  151. });
  152. }
  153.  
  154. });
  155. </script>
  156.  
  157. public ActionResult PreferencesSubmit(Models.UserViewModel model)
  158.  
  159. <form action="/Profile/PreferencesSubmit" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#accordian" id="form0" method="post">
  160.  
  161. <input data-val="true" data-val-number="The field EmailStatus must be a number." data-val-required="The EmailStatus field is required." id="TabPrograms_0__EmailStatus" name="TabPrograms[0].EmailStatus" type="hidden" value="0" />
  162. <input data-val="true" data-val-number="The field SMSStatus must be a number." data-val-required="The SMSStatus field is required." id="TabPrograms_0__SMSStatus" name="TabPrograms[0].SMSStatus" type="hidden" value="0" />
  163. <input data-val="true" data-val-number="The field FBStatus must be a number." data-val-required="The FBStatus field is required." id="TabPrograms_0__FBStatus" name="TabPrograms[0].FBStatus" type="hidden" value="0" />
  164. <input data-val="true" data-val-number="The field MailStatus must be a number." data-val-required="The MailStatus field is required." id="TabPrograms_0__MailStatus" name="TabPrograms[0].MailStatus" type="hidden" value="0" />
  165. <input data-val="true" data-val-number="The field PhoneStatus must be a number." data-val-required="The PhoneStatus field is required." id="TabPrograms_0__PhoneStatus" name="TabPrograms[0].PhoneStatus" type="hidden" value="0" />
  166.  
  167. var TabPrograms = (from l in Model.PrefPrograms
  168. where l.SubcategoryName == @AccordionTabName
  169. select l);
  170. }
  171. @Html.EditorFor(m => TabPrograms)
  172.  
  173. <input name="TabPrograms[0].EmailStatus" data-val="true" data-val-number="The field EmailStatus must be a number." data-val-required="The EmailStatus field is required." id="TabPrograms_0__EmailStatus" type="hidden" value="0" />
Add Comment
Please, Sign In to add comment