i have view includes login , registration form.
loginandregister.cshtml file:
@model tuple<models.loginviewmodel, models.registerviewmodel> @using (html.beginform("login", "account", formmethod.post)) { @html.antiforgerytoken() @html.validationsummary(false) // form login here } @using (html.beginform("register", "account", formmethod.post)) { @html.antiforgerytoken() @html.validationsummary(false) // form register here }
accountcontroller file:
[httppost] [allowanonymous] [validateantiforgerytoken] public async task<actionresult> register([bind(prefix = "item2")] registerviewmodel model) { if (modelstate.isvalid) { // enter code here } // if got far, failed, redisplay form var tuplemodel = new tuple<loginviewmodel, registerviewmodel>(null, model); return view("loginandregister", tuplemodel); } } [httppost] [allowanonymous] [validateantiforgerytoken] public async task<actionresult> login([bind(prefix = "item1")] loginviewmodel model, string returnurl) { var tuplemodel = new tuple<loginviewmodel, registerviewmodel>(model, null); if (!modelstate.isvalid) { return view("loginandregister", tuplemodel); } }
i have 2 question, if guys don't mind me?
when pass model (just 1 item of tuple) controller view, have change tuple<> type , pass 1 value null. way correct? it's working me afraid way isn't correct.
and then, when model invalid (example: values's input in login form invalid), error messages bind @html.validationsummary(false). it's showed in 2 places (register , login form). how resolve issue? https://gyazo.com/e9146059a6a098ee787565222d8dc744
thanks kind helping
login , register 2 different models. can around using tuples in asp.net html helpers. using tuple makes things messy.
what want this:
register.cshtml file:
@model models.registerviewmodel @using (html.beginform("register", "account", formmethod.post)) { @html.antiforgerytoken() @html.validationsummary(false) // form register here } <div>or if have account login:</div> @html.renderaction("login")
controller:
public actionresult login() { if (request.isajaxrequest()) { return partialview(); } }
this render login view in register view, can other way around. although i'd offer link user redirect them login page rather using renderaction.
Comments
Post a Comment