c# - List of Type Class Posting null in the Action -


i have data coming in model , want data on form post model posted fine except list of class type in model posted null.

i know doing wrong in view @ rendering unable resolve it.

here chunk view rendering:

@model inovaclassic.models.registermodel  <table>                  @if (model.postreq != null && model.postreq._questions != null && model.postreq._questions.count > 0)                 {                     (int = 0; < model.postreq._questions.count; i++)                     {                         if (i == 0)                         {                     <legend style="border-bottom: 1px solid gray; font-size: 16px;">questions</legend>                         }                     <tr>                         <td>                             @html.label(model.postreq._questions[i].title)                             @html.hiddenfor(c => c.postreq._questions[i].id)                             @html.hiddenfor(c => c.postreq._questions[i].questionnaireid)                         </td>                         <td>                             <textarea name="answer[@i]" class="required" style="width:520px;height:20px;"></textarea>                          </td>                     </tr>                      }                 }             </table> 

here register action:

[allowanonymous]     [validateantiforgerytoken]     [httppost]     public actionresult register(registermodel model, formcollection form)     {         model.postreq = new postrequirements();         viewbag.token = "";          if (!model.availability.endsafter)             model.availability.endsaftervalue = 1;          //model.resume.uploadedat = datetime.now;         //model.resume.applicationid = 0;         //model.resume.isdefault = true;            foreach (modelstate modelstate in viewdata.modelstate.values)         {             foreach (modelerror error in modelstate.errors)             {                 //dosomethingwith(error);             }         }         if (modelstate.isvalid)         {             // attempt register user             try             {                 int postid;                 int? applicationid = null;                 string confirmationtoken = websecurity.createuserandaccount(model.username.trim(), model.password, new { email = model.email }, true);                 var roles = (simpleroleprovider)roles.provider;                 roles.adduserstoroles(new string[] { model.username.trim() }, new string[] { "applicant" });                 applicant app = new applicant();                 app = applicant.mapapplicant(model.registervm);                 app.userid = db.users.firstordefault(c => c.username == model.username.trim()).userid;                 db.applicant.add(app);                  db.savechanges();                  bool isnumber = int.tryparse(form["postid"],out postid);                  if (isnumber)                 {                       applicationid = applyjob(app.userid, postid);                       /*if (model.postreq != null && model.postreq._questions != null)                     {                          (int = 0; < model.postreq._questions.count; i++)                         {                             questionnaireanswers answer = new questionnaireanswers();                              answer.applicationid = applicationid;                             answer.questionid = model.postreq._questions[i].questionnaireid;                             answer.answer = form["answer[" + + "]"].tostring();                              db.questionnaireanswers.add(answer);                          }                     }*/                     if (form["questionscount"] != null)                     {                          int count = convert.toint32(form["questionscount"]);                          (int = 0; < count; i++)                         {                             questionnaireanswers answer = new questionnaireanswers();                              answer.applicationid = applicationid;                             answer.questionid = convert.toint32(form["questionseqid[" + + "]"]);                             answer.answer = form["answer[" + + "]"].tostring();                              db.questionnaireanswers.add(answer);                          }                      }                     (int = 1; < request.files.count; i++)                     {                         string file = savedocument(applicationid, i);                         int titleindex = - 1;                         applicationdocument applicationdocument = new applicationdocument();                         applicationdocument.applicationid = convert.toint32(applicationid);                         applicationdocument.documenttitle = form["postreq._documents[" + titleindex + "]"];                         applicationdocument.path = file;                           db.applicationdocuments.add(applicationdocument);                      }                 }                 //if (string.isnullorwhitespace(form["postid"].tostring()))                 //{                       string filename = saveresume(app.userid, request.files[0] httppostedfilebase);                      if (filename != "")                     {                         model.resume.path = filename;                         model.resume.userid = app.userid;                         model.resume.uploadedat = datetime.now;                         model.resume.applicationid = applicationid;                         db.resumes.add(model.resume);                     }                      if (form["ends"] == "1")                     {                         model.availability.doesnotend = true;                         model.availability.endsby = false;                         model.availability.endsafter = false;                      }                     if (form["ends"] == "2")                     {                         model.availability.endsafter = true;                         model.availability.doesnotend = false;                         model.availability.endsby = false;                      }                     if (form["ends"] == "3")                     {                         model.availability.endsby = true;                         model.availability.endsafter = false;                         model.availability.doesnotend = false;                     }                     model.availability.applicationid = applicationid;                     model.availability.userid = app.userid;                      db.availabilities.add(model.availability);                 // }                  //if (!string.isnullorwhitespace(form["postid"].tostring()))                 //{                    //    string filename = saveresume(app.userid, request.files[0] httppostedfilebase);                  //    if (filename != "")                 //    {                 //        model.resume.path = filename;                 //        model.resume.userid = app.userid;                 //        model.resume.uploadedat = datetime.now;                 //        model.resume.applicationid = applicationid;                 //        db.resumes.add(model.resume);                 //    }                  //    if (form["ends"] == "1")                 //    {                 //        model.availability.doesnotend = true;                 //        model.availability.endsby = false;                 //        model.availability.endsafter = false;                  //    }                 //    if (form["ends"] == "2")                 //    {                 //        model.availability.endsafter = true;                 //        model.availability.doesnotend = false;                 //        model.availability.endsby = false;                  //    }                 //    if (form["ends"] == "3")                 //    {                 //        model.availability.endsby = true;                 //        model.availability.endsafter = false;                 //        model.availability.doesnotend = false;                 //    }                 //    model.availability.applicationid = applicationid;                 //    model.availability.userid = app.userid;                  //    db.availabilities.add(model.availability);                  //    (int = 0; < model.postreq._questions.count; i++)                 //    {                 //        questionnaireanswers answer = new questionnaireanswers();                  //        answer.applicationid = applicationid;                 //        answer.questionid = model.postreq._questions[i].questionnaireid;                 //        answer.answer = form["answer[" + + "]"].tostring();                  //        db.questionnaireanswers.add(answer);                  //    }                   //    (int = 1; < request.files.count; i++)                 //    {                 //        string file = savedocument(applicationid, i);                  //        applicationdocument applicationdocument = new applicationdocument();                 //        applicationdocument.applicationid = applicationid;                 //        applicationdocument.documenttitle = form["postreq._documents[" + + "]"];                 //        applicationdocument.path = file;                   //        db.applicationdocuments.add(applicationdocument);                  //    }                   //    //db.savechanges();                 //}                 //applicant myapplicant = applicant.mapapplicant(model.registervm);                  //test code                 //resume resume = new resume();                 //resume.title = "cv97";                 //resume.isdefault = true;                 //resume.path = "37_adloader[1].htm";                 //resume.userid = app.userid;                 //resume.applicationid = null;                 //db.resumes.add(resume);                  db.savechanges();                 //websecurity.login(model.username, model.password);                 string returnurl = tempdata["returnurl"] == null ? "" : tempdata["returnurl"].tostring();                 string str_rev = returnurl.reverse().takewhile(c => char.isdigit(c)).tostring();                 coverletter letter = myhelpers.registerletter();                 urlhelper u = new urlhelper(this.controllercontext.requestcontext);                 //string url = myhelpers.getbaseurl() + u.action("confirmaccount", "account", new { id = confirmationtoken, user = model.username.trim(), returnurl = returnurl });                 string url = myhelpers.getbaseurl() + u.action("confirmaccount", "account", new { id = confirmationtoken, user = model.username.trim() });                 string link = "<a href=\"" + url + "\" target=\"_blank\">confirmation link</a>";                 string body = letter.body.replace("%link%", link);                 myhelpers.sendmail(model.email, letter.subject, body);                 viewbag.token = "1";                  return redirecttoaction("result", "post", new { id = 3 });                 //return view();                 // return redirecttoaction("index", "home");             }             catch (membershipcreateuserexception e)             {                 modelstate.addmodelerror("", errorcodetostring(e.statuscode));             }         }           list<country> countries = db.country.tolist();         selectlist countrylist = new selectlist(countries, "id", "name", model.registervm.country);          list<country> visacountries = db.country.tolist();         selectlist visacountrylist = new selectlist(visacountries, "id", "name", model.registervm.visacountry);          list<maritalstatus> maritalstatuses = db.maritalstatus.tolist();         selectlist maritalstatuslist = new selectlist(maritalstatuses, "id", "name", model.registervm.maritalstatus);          list<title> titles = db.title.tolist();         selectlist titlelist = new selectlist(titles, "id", "name", model.registervm.title);          list<visatype> visatypes = db.visatype.tolist();         selectlist visatypelist = new selectlist(visatypes, "id", "name", model.registervm.visatype);          viewbag.countrylist = countrylist;         viewbag.visacountrylist = visacountrylist;         viewbag.maritalstatuslist = maritalstatuslist;         viewbag.titlelist = titlelist;         viewbag.visatypelist = visatypelist;           // if got far, failed, redisplay form         //return view(model);         return partialview("~/views/account/registeruser.cshtml", model);     } 

here model:

public class registermodel     {         [required(errormessage="username required")]         [stringlength(50)]         [display(name = "user name")]         public string username { get; set; }          [required(errormessage = "password required")]         [stringlength(15, minimumlength = 6)]         [datatype(datatype.password)]         [display(name = "password")]          public string password { get; set; }          [datatype(datatype.password)]         [display(name = "confirm password")]         [compare("password", errormessage = "the password , confirmation password not match.")]         public string confirmpassword { get; set; }         [required(errormessage = "email address required")]         [datatype(datatype.emailaddress), regularexpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", errormessage = "please enter valid email address.")]         [stringlength(100)]         public string email { get; set; }          public registerviewmodel registervm { get; set; }          public resume resume { get; set; }          public availability availability { get; set; }          public postrequirements postreq { get; set; }        } 

see postrequirements:

public class postrequirements     {         public list<question> _questions { get; set; }         public list<string> _documents { get; set; }      } } 

you missing form tags.

 @using (html.beginform())  { } 

this should wrapped around form elements.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -