Updating value html
If it's not I want to reset the email address back to the old value which exists in the database and was previously store.The obvious thing to do would be to modify the model., you should be careful not to use it with untrusted model values, because that might open the possibility of a script injection attack. NET MVC that I didn't really get until today: Html Helpers controls (like .binding causes the associated DOM element to display the HTML specified by your parameter.Typically this is useful when values in your view model are actually strings of HTML markup that you want to render.This is easy enough to create, but feels a little out of place when using the @Html helpers for everything else.
The default behavior should be fine for 99% of binding scenarios.Text Box For() etc.) don't bind to model values on Postback, but rather get their value directly out of the POST buffer from Model State.Effectively it looks like you can't change the display value of a control via model value updates on a Postback operation. I have a small section in a document where I display an editable email address: This is what the form displays on a GET operation and as expected I get the email value displayed in both the textbox and plain value display below, which reflects the value in the mode.So, you can also clear out individual values on an as needed basis: This allows you to remove a single value from the Model State and effectively allows you to replace that value for display from the model.While researching this I came across a post from Microsoft's Brad Wilson who describes the default binding behavior best in a forum post: The reason we use the posted value for editors rather than the model value is that the model may not be able to contain the value that the user typed.Here's the Razor markup: So, I have this form and the user can change their email address.On postback the Post controller code then asks the business layer whether the change is allowed.But if you do need fix up values based on your model rather than the default POST values, there are a number of ways that you can work around this.Initially when I ran into this, I couldn't figure out how to set the value using code and so the simplest solution to me was simply to not use the MVC Html Helper for the specific control and explicitly bind the model via HTML markup and @Razor expression: And this produces the right result.The Text Box displays the POST value, the raw value displays the actual model value which are different.This means that MVC renders the textbox value from the POST data rather than from the view data when an Http POST is active.