Click here to Skip to main content
15,886,362 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi I m new in MVC now working in dual listboxes, I wanted to move the data from listbox1 to listbox2. For that I m using the following code in view:

XML
<tbody>
<tr>
<td>
<%:Html.HiddenFor(m=>m.objMemberAccessRights.Id) %>
<%:Html.ListBoxFor(model =>model.objMemberAccessRights.AvailableSelected, newMultiSelectList(Model.objMemberAccessRights.AvailableNames, "Id", "InstituteName", Model.objMemberAccessRights.AvailableSelected), new { size="8"})%>
</td>

<td>
<br/>
<%:Html.ActionLink(">>", "AddNames", "MemberDetails") %>
<br/>

<br/>

<%:Html.ActionLink("<<", "RemoveNames", "MemberDetails") %>
</td>

<td>
<%:Html.ListBoxFor(model=>model.objMemberAccessRights.RequestedSelected,newMultiSelectList(Model.objMemberAccessRights.RequestedNames,"Id","InstituteName",Model.objMemberAccessRights.RequestedSelected), new { size="8"}) %>
</td>
</tr>
</tbody>


In controller:


//
// GET: /MemberDetails/Create
public ActionResult Create()
        {

MemberDetailsWrapper MD = new MemberDetailsWrapper();
MD.objMemberAccessRights = newMemberAccessRights{ AvailableNames = getAllInstituteNameList(), RequestedNames = new List<InstituteInformation>() };

return View(MD);
        }

//AddNames
public ActionResult AddNames(MemberDetailsWrapper MD, string add)
        {
ModelState.Clear();
RestoreSavedState(MD);
if (!add.Equals(">>"))
            {
if (MD.objMemberAccessRights.AvailableSelected != null)
                {
var names = getAllInstituteNameList().Where(p => MD.objMemberAccessRights.AvailableSelected.Contains(p.InstituteName));
MD.objMemberAccessRights.RequestedNames.AddRange(names);
                    MD.objMemberAccessRights.AvailableSelected = null;
                }
            }
SaveState(MD);
return View(MD);
        }


//RemoveNames
public ActionResult RemoveNames(MemberDetailsWrapper MD, string remove)
        {
ModelState.Clear();
RestoreSavedState(MD);
if (!remove.Equals("<<"))
            {
if (MD.objMemberAccessRights.RequestedSelected != null)
                {
MD.objMemberAccessRights.RequestedNames.RemoveAll(p => MD.objMemberAccessRights.RequestedSelected.Contains(p.InstituteName));
MD.objMemberAccessRights.RequestedSelected = null;
                }
            }
SaveState(MD);
return View(MD);
        }

        #regionSupportFuncs

public void SaveState(MemberDetailsWrapper MD)
        {
MD.objMemberAccessRights.SavedRequested = string.Join(",", MD.objMemberAccessRights.RequestedNames.Select(p =>p.InstituteName).ToArray());

////Available Names = All - Requested
MD.objMemberAccessRights.AvailableNames = getAllInstituteNameList().Except(MD.objMemberAccessRights.RequestedNames).ToList();

        }

//RestoreSavedState
public void RestoreSavedState(MemberDetailsWrapper MD)
        {
MD.objMemberAccessRights.RequestedNames = new List<InstituteInformation>();

if (!string.IsNullOrEmpty(MD.objMemberAccessRights.SavedRequested))
            {
string[] nameids = MD.objMemberAccessRights.SavedRequested.Split(',');
var name = getAllInstituteNameList().Where(p =>nameids.Contains(p.InstituteName));
MD.objMemberAccessRights.RequestedNames.AddRange(name);
            }
        }

        #endregion



In model:


XML
Public class InstituteInformation
    {
Public int Id { get; set; }
Public string InstituteName { get; set; }
}


Public class MemberAccessRights
    {
Public int Id { get; set; }

Public List<InstituteInformation> AvailableNames { get; set; }
Public string[] AvailableSelected { get; set; }

Public List<InstituteInformation> RequestedNames { get; set; }
Public string[] RequestedSelected { get; set; }

Public string SavedRequested { get; set; }
    }


Here When I click on >> button then this button returns the Error:

XML
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

Line 170:        public void RestoreSavedState(MemberDetailsWrapper MD)
Line 171:        {
Line 172:            MD.objMemberAccessRights.RequestedNames = new List<InstituteInformation>();
Line 173:
Line 174:            if (!string.IsNullOrEmpty(MD.objMemberAccessRights.SavedRequested))


Please Help to solve this
Posted
Updated 18-May-21 10:03am

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900