c# - How are Validation Messages transmitted from controller to view? -
i needed modify validation message on website. reason (maybe bad) took shortcut. going code custom modelbinder. still, expose problem.
in view file, added several hidden input fields , using model binder, in controller, gets 2 entities (one model of view file, other 1 created via hidden input fields)
<input type="text" name = "fromhiddeninputs.name" value="" /> <input type="hidden" name ="fromhiddeninputs.id" value="0" />
note fromhiddeninputs not part of @model.
[httppost] [validateantiforgerytoken] public actionresult create(entity mymodel, secondentity fromhiddeninputs) { if (modelstate.isvalid){
in debug mode on method deals posted result of form. when @ modelstate, see validation errors both entities.
so in view file, using code, can display validation message :
@html.validationmessagefor(model => model.myproperty)
or
@html.validationmessage("fromhiddeninputs.name", "*")
so question following, how errors , validation of modelstate passed actionresult viewfile ?
since validation process performed earlier modelbinder
, errors data exists in modelstate.values
.
now validationmessagefor
helper method has extract data it's viewdata.modelstate.values
collection.
Comments
Post a Comment